Add more documentation to readme
This commit is contained in:
parent
2d36039966
commit
0c123c415b
1 changed files with 16 additions and 1 deletions
17
README.md
17
README.md
|
@ -18,12 +18,27 @@ This project has been built with docker support, and a docker image can be built
|
|||
Please note that the above environment variables will still need to be passed into the container for execution to work correctly.
|
||||
|
||||
## Testing
|
||||
This application comes with a complete test suite, it can be run using the standard `go test` system.
|
||||
This API comes with a complete test suite, it can be run using the standard `go test` system.
|
||||
When running tests you are required to provide the same credentials as when running the server normally.
|
||||
|
||||
For example:
|
||||
`SPOTIFY_ID=myspotifyID SPOTIFY_TOKEN=myspotifytoken go test .`
|
||||
|
||||
## Pagination
|
||||
The API supports pagination on all endpoints that require it, and by default the first page of 10 elements is returned. If you would like to customize the pagination, simply add the `page=` and `page_size=` paramaters to your query.
|
||||
|
||||
For example, using curl: `curl -v 'http://127.0.0.1:8000/artists?name=a&page=2&page_size=100'`
|
||||
This would return the second page of 100 elements from the artist name search endpoint.
|
||||
Currently the genre listing endpoint also supports these parameters.
|
||||
|
||||
## Adding new genres
|
||||
The API endpoint to add a new genre accepts a `POST` request on the `/genres` route, and will parse several types of application input, preferring JSON and XML first but falling back to post-form parsing if the client has not specified an appropriate content type for their request.
|
||||
|
||||
To give a concrete example using JSON, the following curl request adds a new genre to the database:
|
||||
`curl -v http://127.0.0.1:8000/genres -X POST --data '{"name": "myfancysound"}' -H "content-type: application/json"`
|
||||
|
||||
Note that since the content type is being checked by the API for parsing, you are required to specify a correct one, otherwise you must send post-form data for the API to find your values correctly.
|
||||
|
||||
## Technical Choices
|
||||
This project is built using the Gin framework, for easy and consistent request contexts, as well as easy to expand middleware support.
|
||||
For database interactions it uses the gorm library, to allow for advanced SQL features and server agnostic support.
|
||||
|
|
Loading…
Add table
Reference in a new issue