# HTTP API documentation ## Get specific quote ```HTTP GET /quotes/:id ``` ```BASH curl --request GET 'https://ladylilia.com/quotes/api/quotes/28' ``` Example response: ```JSON { "id": 28, "date": "2017-10-16", "game": "Call of Cthulhu: Shadow of the Comet", "text": "Hey, nerd. Sit down so I can have speaks with you.", "created_at": "2018-04-29T20:00:00", "updated_at": "2018-04-29T20:00:00" } ``` ## Get list of quotes ```HTTP GET /quotes ``` ```BASH curl --request GET --data 'https://ladylilia.com/quotes/api/quotes?filter=balls&sort_by=date&sort_order=asc' ``` *Note: `X-Total-Count` header is set to a total number of quotes after filtering (useful for pagination)* Example response: ```JSON [ { "id": 6, "date": "2017-10-10", "game": "The Elder Scrolls IV: Oblivion", "text": "Being a vampire in Oblivion sucks balls.", "created_at": "2018-04-29T20:00:00", "updated_at": "2018-04-29T20:00:00" }, { "id": 25, "date": "2017-10-12", "game": "Alien: Isolation", "text": "Holy balls!", "created_at": "2018-04-29T20:00:00", "updated_at": "2018-04-29T20:00:00" } ] ``` Parameters: * `filter` (optional) - Filter string * `sort_by` (optional) - Sort field, one of `id`, `date`, `game`, `text` * `sort_order` (optional) - Sort order, one of `asc`, `desc`, `random` * `page_number` (optional) - Page number to retrieve * `page_size` (optional) - Number of quotes per page ## Create quote ```HTTP POST /quotes ``` ```BASH curl --request POST --header 'X-Quotes-API-Key: $API_KEY' --data 'id=666&date=2018-10-31&game=IRL&text=Cheese' 'https://ladylilia.com/quotes/api/quotes' ``` *Note: the quote is replaced if it exists already* Parameters: * `id` (required) - Quote ID * `date` (required) - Date in **ISO 8601** format * `game` (required) - Related game * `text` (required) - Text of the quote ## Replace specific quote ```HTTP PUT /quotes/:id ``` ```BASH curl --request PUT --header 'X-Quotes-API-Key: $API_KEY' --data 'date=2018-10-31&game=IRL&text=Coffee' 'https://ladylilia.com/quotes/api/quotes/666' ``` *Note: the quote is created if it doesn't exist yet* Parameters: * `date` (required) - Date in **ISO 8601** format * `game` (required) - Related game * `text` (required) - Text of the quote ## Delete specific quote ```HTTP DELETE /quotes/:id ``` ```BASH curl --request DELETE --header 'X-Quotes-API-Key: $API_KEY' 'https://ladylilia.com/quotes/api/quotes/666' ```