You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
C
49 lines
1.5 KiB
C
![]()
7 years ago
|
#ifndef BOOK_SERVICES_H_
|
||
|
#define BOOK_SERVICES_H_
|
||
|
|
||
|
#include "webcc/rest_service.h"
|
||
|
|
||
|
// NOTE:
|
||
|
// XxxListService and XxxDetailService are similar to the XxxListView
|
||
|
// and XxxDetailView in Django (a Python web framework).
|
||
|
|
||
![]()
7 years ago
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
![]()
7 years ago
|
// List Service handles the HTTP GET and returns the book list based on
|
||
|
// query parameters specified in the URL.
|
||
|
// The URL should be like:
|
||
|
// - /books
|
||
|
// - /books?name={BookName}
|
||
|
// The query parameters could be regular expressions.
|
||
|
class BookListService : public webcc::RestService {
|
||
|
public:
|
||
|
BookListService() = default;
|
||
|
~BookListService() override = default;
|
||
|
|
||
|
bool Handle(const std::string& http_method,
|
||
|
const std::vector<std::string>& url_sub_matches,
|
||
|
const std::string& request_content,
|
||
|
std::string* response_content) override;
|
||
|
};
|
||
|
|
||
![]()
7 years ago
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
![]()
7 years ago
|
// Detail Service handles the following HTTP methods:
|
||
|
// - GET
|
||
|
// - PUT
|
||
|
// - PATCH
|
||
|
// - DELETE
|
||
|
// The URL should be like: /books/{BookID}.
|
||
|
class BookDetailService : public webcc::RestService {
|
||
|
public:
|
||
|
BookDetailService() = default;
|
||
|
~BookDetailService() override = default;
|
||
|
|
||
|
bool Handle(const std::string& http_method,
|
||
|
const std::vector<std::string>& url_sub_matches,
|
||
|
const std::string& request_content,
|
||
|
std::string* response_content) override;
|
||
|
};
|
||
|
|
||
|
#endif // BOOK_SERVICE_H_
|