You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
1.5 KiB
27 lines
1.5 KiB
#ifndef _TOREST_RESOURCE_HPP_ |
|
#define _TOREST_RESOURCE_HPP_ |
|
|
|
#include <http.hpp> |
|
|
|
class resource_base { |
|
friend std::ostream& operator<<(std::ostream& os,const resource_base& rs) |
|
{ os << rs.json_response; return os; } |
|
public: |
|
virtual ~resource_base(){} |
|
/// GET Read 200 (OK), list of customers. Use pagination, sorting and filtering to navigate big lists. 200 (OK), single customer. 404 (Not Found), if ID not found or invalid. |
|
virtual void get(nlohmann::json data=nullptr){} |
|
/// PATCH Update/Modify 404 (Not Found), unless you want to modify the collection itself. 200 (OK) or 204 (No Content). 404 (Not Found), if ID not found or invalid. |
|
virtual void patch(nlohmann::json data=nullptr){} |
|
/// POST Create 201 (Created), 'Location' header with link to /customers/{id} containing new ID. 404 (Not Found), 409 (Conflict) if resource already exists.. |
|
virtual void post(nlohmann::json data=nullptr){} |
|
/// DELETE Delete 404 (Not Found), unless you want to delete the whole collection—not often desirable. 200 (OK). 404 (Not Found), if ID not found or invalid. |
|
virtual void del(nlohmann::json data=nullptr){} |
|
/// PUT Update/Replace 404 (Not Found), unless you want to update/replace every resource in the entire collection. 200 (OK) or 204 (No Content). 404 (Not Found), if ID not found or invalid. |
|
virtual void put(nlohmann::json data=nullptr){} |
|
/// get a reference to the underlying JSON response |
|
http::json_response& get_response(){ return json_response; } |
|
protected: |
|
http::json_response json_response; |
|
}; |
|
|
|
#endif // _TOREST_RESOURCE_HPP_
|
|
|