drogon/examples/simple_example/api_v1_ApiTest.h

42 lines
2.1 KiB
C
Raw Normal View History

#pragma once
#include <drogon/HttpController.h>
using namespace drogon;
namespace api
{
2018-10-14 07:56:54 +00:00
namespace v1
{
class ApiTest : public drogon::HttpController<ApiTest>
2018-10-14 07:56:54 +00:00
{
2019-01-02 10:49:37 +00:00
public:
METHOD_LIST_BEGIN
//use METHOD_ADD to add your custom processing function here;
2019-04-12 13:45:43 +00:00
METHOD_ADD(ApiTest::rootGet, "", "TimeFilter", Get, Options, "drogon::LocalHostFilter", "drogon::IntranetIpFilter");
METHOD_ADD(ApiTest::rootPost, "", Post, Options);
2019-03-06 07:57:05 +00:00
METHOD_ADD(ApiTest::get, "/get/{2}/{1}", Get); //path is /api/v1/apitest/get/{arg2}/{arg1}
METHOD_ADD(ApiTest::your_method_name, "/{1}/List?P2={2}", Get); //path is /api/v1/apitest/{arg1}/list
2019-04-12 13:45:43 +00:00
METHOD_ADD(ApiTest::staticApi, "/static", Get, Options); //CORS
METHOD_ADD(ApiTest::staticApi, "/static", Post, Put, Delete);
METHOD_ADD(ApiTest::get2, "/get/{1}", Get); //path is /api/v1/apitest/get/{arg1}
ADD_METHOD_TO(ApiTest::get2, "/absolute/{1}", Get); //path is /absolute/{arg1}
2019-01-22 15:00:14 +00:00
METHOD_ADD(ApiTest::jsonTest, "/json", Post);
2019-01-23 03:32:55 +00:00
METHOD_ADD(ApiTest::formTest, "/form", Post);
2019-01-02 10:49:37 +00:00
METHOD_LIST_END
//your declaration of processing function maybe like this:
void get(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback, int p1, std::string &&p2);
void your_method_name(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback, double p1, int p2) const;
void staticApi(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
void get2(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback, std::string &&p1);
void rootGet(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
void rootPost(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
void jsonTest(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
void formTest(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
2019-04-12 13:45:43 +00:00
2019-01-25 08:46:20 +00:00
public:
ApiTest()
{
LOG_DEBUG << "ApiTest constructor!";
}
2018-10-14 07:56:54 +00:00
};
} // namespace v1
} // namespace api