Challenge Overview
API Spec Creation Series - which aims to create the initial stage of API specification to support further API implementation and API Tests creation.
We'd like to create a bunch of APIs for managing Topcoder billing accounts.
For this challenge, we'd like to first spec out the API by using Swagger Specification.
Following are the general consideration for the APIs.
- This should be a new microservice (/v3/billingaccount)
- We needs APIs for doing the following actions
* Create a new billing account
* Assign users to a billing account
* Remove users from a billing account
* Update a billing account (including name, dates, status)
* Get all billing accounts (filter on status, customer, user, dates)
- Security and Permissions:
* Admin users can create billing accounts, update billing accounts, assign users, remove users, view all billing accounts.
* Non-admin users can only see their own billing accounts
- Please follow our API Specfiication also
- Please use YAML format for swagger file
- The API specification should cover all cases, including success, different failures, permission issue etc
References
- There is some existing code in the v2 api (https://github.com/appirio-tech/tc-api/blob/master/actions/platform.js) that is not being used and was never fully tested. But you can use for reference to better understanding, so create API specification properly.
- see https://github.com/appirio-tech/tc-api/blob/dev/queries/get_active_billing_accounts the related tables are client, client_project and project in time_oltp database.
- A sample swagger.yaml file will be provided for your reference and better understanding
We'd like to create a bunch of APIs for managing Topcoder billing accounts.
For this challenge, we'd like to first spec out the API by using Swagger Specification.
Following are the general consideration for the APIs.
- This should be a new microservice (/v3/billingaccount)
- We needs APIs for doing the following actions
* Create a new billing account
* Assign users to a billing account
* Remove users from a billing account
* Update a billing account (including name, dates, status)
* Get all billing accounts (filter on status, customer, user, dates)
- Security and Permissions:
* Admin users can create billing accounts, update billing accounts, assign users, remove users, view all billing accounts.
* Non-admin users can only see their own billing accounts
- Please follow our API Specfiication also
- Please use YAML format for swagger file
- The API specification should cover all cases, including success, different failures, permission issue etc
References
- There is some existing code in the v2 api (https://github.com/appirio-tech/tc-api/blob/master/actions/platform.js) that is not being used and was never fully tested. But you can use for reference to better understanding, so create API specification properly.
- see https://github.com/appirio-tech/tc-api/blob/dev/queries/get_active_billing_accounts the related tables are client, client_project and project in time_oltp database.
- A sample swagger.yaml file will be provided for your reference and better understanding