Client.hpp 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. /***************************************************************************
  2. *
  3. * Project _____ __ ____ _ _
  4. * ( _ ) /__\ (_ _)_| |_ _| |_
  5. * )(_)( /(__)\ )( (_ _)(_ _)
  6. * (_____)(__)(__)(__) |_| |_|
  7. *
  8. *
  9. * Copyright 2018-present, Leonid Stryzhevskyi <lganzzzo@gmail.com>
  10. *
  11. * Licensed under the Apache License, Version 2.0 (the "License");
  12. * you may not use this file except in compliance with the License.
  13. * You may obtain a copy of the License at
  14. *
  15. * http://www.apache.org/licenses/LICENSE-2.0
  16. *
  17. * Unless required by applicable law or agreed to in writing, software
  18. * distributed under the License is distributed on an "AS IS" BASIS,
  19. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  20. * See the License for the specific language governing permissions and
  21. * limitations under the License.
  22. *
  23. ***************************************************************************/
  24. #ifndef oatpp_test_web_app_Client_hpp
  25. #define oatpp_test_web_app_Client_hpp
  26. #include "./DTOs.hpp"
  27. #include "oatpp/web/client/ApiClient.hpp"
  28. #include "oatpp/web/protocol/http/outgoing/MultipartBody.hpp"
  29. #include "oatpp/encoding/Base64.hpp"
  30. #include "oatpp/core/macro/codegen.hpp"
  31. namespace oatpp { namespace test { namespace web { namespace app {
  32. class Client : public oatpp::web::client::ApiClient {
  33. public:
  34. typedef oatpp::web::protocol::http::outgoing::MultipartBody MultipartBody;
  35. public:
  36. #include OATPP_CODEGEN_BEGIN(ApiClient)
  37. API_CLIENT_INIT(Client)
  38. API_CALL("GET", "/", getRoot)
  39. API_CALL("GET", "/availability", getAvailability)
  40. API_CALL("GET", "/cors", getCors)
  41. API_CALL("OPTIONS", "/cors", optionsCors)
  42. API_CALL("GET", "/cors-origin", getCorsOrigin)
  43. API_CALL("GET", "/cors-origin-methods", getCorsOriginMethods)
  44. API_CALL("GET", "/cors-origin-methods-headers", getCorsOriginMethodsHeader)
  45. API_CALL("GET", "params/{param}", getWithParams, PATH(String, param))
  46. API_CALL("GET", "queries", getWithQueries, QUERY(String, name), QUERY(Int32, age))
  47. API_CALL("GET", "queries/optional", getWithOptQueries, QUERY(String, name))
  48. API_CALL("GET", "queries/map", getWithQueriesMap, QUERY(String, key1), QUERY(Int32, key2), QUERY(Float32, key3))
  49. API_CALL("GET", "headers", getWithHeaders, HEADER(String, param, "X-TEST-HEADER"))
  50. API_CALL("POST", "body", postBody, BODY_STRING(String, body))
  51. API_CALL("POST", "body-dto", postBodyDto, BODY_DTO(Object<TestDto>, body))
  52. API_CALL("GET", "enum/as-string", getHeaderEnumAsString, HEADER(Enum<AllowedPathParams>::AsString, enumValue, "enum"))
  53. API_CALL("GET", "enum/as-number", getHeaderEnumAsNumber, HEADER(Enum<AllowedPathParams>::AsNumber, enumValue, "enum"))
  54. API_CALL("POST", "echo", echoBody, BODY_STRING(String, body))
  55. API_CALL("GET", "header-value-set", headerValueSet, HEADER(String, valueSet, "X-VALUE-SET"))
  56. API_CALL("GET", "default-basic-authorization", defaultBasicAuthorization, AUTHORIZATION_BASIC(String, authString))
  57. API_CALL("GET", "default-basic-authorization", defaultBasicAuthorizationWithoutHeader)
  58. API_CALL("GET", "basic-authorization", customBasicAuthorization, AUTHORIZATION_BASIC(String, authString))
  59. API_CALL("GET", "basic-authorization", customBasicAuthorizationWithoutHeader)
  60. API_CALL("GET", "bearer-authorization", bearerAuthorization, AUTHORIZATION(String, authString, "Bearer"))
  61. API_CALL("GET", "chunked/{text-value}/{num-iterations}", getChunked, PATH(String, text, "text-value"), PATH(Int32, numIterations, "num-iterations"))
  62. API_CALL("POST", "test/multipart/{chunk-size}", multipartTest, PATH(Int32, chunkSize, "chunk-size"), BODY(std::shared_ptr<MultipartBody>, body))
  63. API_CALL("GET", "test/interceptors", getInterceptors)
  64. API_CALL("GET", "test/errorhandling", getCaughtError)
  65. API_CALL_HEADERS(getDefaultHeaders1) {
  66. headers.put("X-DEFAULT", "hello_1");
  67. }
  68. API_CALL("GET", "default_headers", getDefaultHeaders1)
  69. API_CALL_HEADERS(getDefaultHeaders2) {
  70. headers.put("X-DEFAULT", "hello_2");
  71. }
  72. API_CALL("GET", "default_headers/{param}", getDefaultHeaders2, PATH(String, param))
  73. API_CALL("GET", "bundle", getBundle)
  74. API_CALL("GET", "host_header", getHostHeader)
  75. API_CALL_ASYNC("GET", "/", getRootAsync)
  76. API_CALL_ASYNC("GET", "/", getRootAsyncWithCKA, HEADER(String, connection, "Connection"))
  77. API_CALL_ASYNC("GET", "params/{param}", getWithParamsAsync, PATH(String, param))
  78. API_CALL_ASYNC("GET", "queries", getWithQueriesAsync, QUERY(String, name), QUERY(Int32, age))
  79. API_CALL_ASYNC("GET", "queries/map", getWithQueriesMapAsync, QUERY(String, key1), QUERY(Int32, key2), QUERY(Float32, key3))
  80. API_CALL_ASYNC("GET", "headers", getWithHeadersAsync, HEADER(String, param, "X-TEST-HEADER"))
  81. API_CALL_ASYNC("POST", "body", postBodyAsync, BODY_STRING(String, body))
  82. API_CALL_ASYNC("POST", "echo", echoBodyAsync, BODY_STRING(String, body))
  83. API_CALL_ASYNC("GET", "header-value-set", headerValueSetAsync, HEADER(String, valueSet, "X-VALUE-SET"))
  84. API_CALL_ASYNC("GET", "chunked/{text-value}/{num-iterations}", getChunkedAsync, PATH(String, text, "text-value"), PATH(Int32, numIterations, "num-iterations"))
  85. API_CALL_HEADERS(GetDefaultHeaders3) {
  86. headers.put("X-DEFAULT", "hello_3");
  87. }
  88. API_CALL_ASYNC("GET", "default_headers", GetDefaultHeaders3)
  89. API_CALL_HEADERS(GetDefaultHeaders4) {
  90. headers.put("X-DEFAULT", "hello_4");
  91. }
  92. API_CALL_ASYNC("GET", "default_headers/{param}", GetDefaultHeaders4, PATH(String, param))
  93. #include OATPP_CODEGEN_END(ApiClient)
  94. };
  95. }}}}
  96. #endif /* oatpp_test_web_app_Client_hpp */