api.moov.io
This repository holds our api.moov.io
website, which is our API documentation.
Documentation is markdown generated by ReDoc. View source on the Swagger Editor.
Getting Started / Install
- Clone the repository somewhere (
git clone git@github.com:moov-io/api.git
)
- Edit the files to make your change (i.e.
openpai.yaml
)
- Run
make
to generate a docker image with your changes
- Verify your changes by running locally with
make serve
- Also, you can run
make serve-apps
to load the OpenAPI pages for each Moov application
- Commit your changes, push up a new branch, and create a Pull Request!
API Requirements
- Every endpoint MUST support
X-Request-Id
.
- Every POST, PUT, and PATCH endpoint MUST support
X-Idempotency-Key
.
- Authenticated requests (outside OAuth and Users) MUST accept both OAuth and User auth.
- Some OAuth and User operations require their speciifc auth (or the other form to bootstrap).
- All 4xx errors MUST include an error message for the user.
apitest
apitest
is the name for a tool we write to test out API endpoints. Largely this tool is for checking our business logic paths work together (i.e. create a transfer).
To use this tool we recommend installing it locally (go get github.com/moov-io/api/cmd/apitest
).
$ apitest
2019/05/21 20:07:14.061194 main.go:59: Starting apitest v0.9.2-rc1
2019/05/21 20:07:14.061292 main.go:131: Using https://api.moov.io as base API address
2019/05/21 20:07:15.182516 main.go:169: ACH PONG
2019/05/21 20:07:15.290894 main.go:179: auth PONG
2019/05/21 20:07:15.397242 main.go:189: paygate PONG
2019/05/21 20:07:15.397276 main.go:216: Using X-Request-ID: 2e65e7b1c388aa2c030bb169afdc64b910d7ef66
2019/05/21 20:07:17.909185 main.go:216: SUCCESS: Created user 0d1b2ab53e85444b328db8838c4bcf3bd2d4b055 (email: gallant.stonebraker24@example.com)
2019/05/21 20:07:18.076136 main.go:216: SUCCESS: Cookie works for user 0d1b2ab53e85444b328db8838c4bcf3bd2d4b055
2019/05/21 20:07:18.689341 main.go:216: SUCCESS: Created OAuth access token (ZEOVXUCENWIBVI9QICN-HA), expires in 2h0m0s
2019/05/21 20:07:19.971389 main.go:216: SUCCESS: Created Originator Depository (id=5131701bbf18d439471e7d7f025d061707a76bfa) for user
2019/05/21 20:07:20.176333 main.go:216: SUCCESS: Created Originator (id=3d04991ff9d92a22a33b25b31ee252846402fc84) for user
2019/05/21 20:07:21.191111 main.go:216: SUCCESS: Created Receiver Depository (id=9d763c8a83f3a0d652e4aed64712ac95510d7d09) for user
2019/05/21 20:07:21.625332 main.go:216: SUCCESS: Created Receiver (id=2ceb2c969428002bb437ceda22e3b0f64f3fac52) for user
2019/05/21 20:07:22.107874 main.go:216: SUCCESS: Created USD 220.98 transfer (id=630490fdaee379a3705a1f20940d850a659e17a0) for user
2019/05/21 20:07:22.431543 main.go:216: SUCCESS: Matched transactions on accounts
2019/05/21 20:07:22.549011 main.go:216: SUCCESS: invalid login credentials were rejected
2019/05/21 20:07:22.724240 main.go:216: SUCCESS: invalid OAuth2 access token was rejected
apitest -local
can be used when launching Moov's applications with go run
commands on the same host.
apitest -dev
can be ran against our local dev setup in the infra repository.
Getting Help
channel |
info |
Google Group moov-users |
The Moov users Google group is for contributors other people contributing to the Moov project. You can join them without a google account by sending an email to moov-users+subscribe@googlegroups.com. After receiving the join-request message, you can simply reply to that to confirm the subscription. |
Twitter @moov_io |
You can follow Moov.IO's Twitter feed to get updates on our project(s). You can also tweet us questions or just share blogs or stories. |
GitHub Issue |
If you are able to reproduce an problem please open a GitHub Issue under the specific project that caused the error. |
moov-io slack |
Join our slack channel to have an interactive discussion about the development of the project. Request an invite to the slack channel |
Contributing
Yes please! Please start by reviewing our Code of Conduct.
You only have a fresh set of eyes once! The easiest way to contribute is to give feedback on the documentation that you are reading right now. This can be as simple as sending a message to our Google Group with your feedback or updating the markdown in this documentation and issuing a pull request.
License
Apache License 2.0 See LICENSE for details.