mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-06-21 08:10:50 +00:00
[Erlang] return empty body for 204 (#9512)
* fix handle_request_json spec res * fix client spec * make it possible to answer with 0 size binary for 204 * only generate empty bin for 204 * only generate empty bin for 204
This commit is contained in:
parent
3c866fb4a3
commit
cdc00769aa
@ -3,7 +3,7 @@
|
|||||||
-export([{{#operations}}{{#operation}}{{^-first}},
|
-export([{{#operations}}{{#operation}}{{^-first}},
|
||||||
{{/-first}}{{operationId}}/{{arityRequired}}, {{operationId}}/{{arityOptional}}{{/operation}}{{/operations}}]).
|
{{/-first}}{{operationId}}/{{arityRequired}}, {{operationId}}/{{arityOptional}}{{/operation}}{{/operations}}]).
|
||||||
|
|
||||||
-define(BASE_URL, "{{{basePathWithoutHost}}}").
|
-define(BASE_URL, <<"{{{basePathWithoutHost}}}">>).
|
||||||
|
|
||||||
{{#operations}}
|
{{#operations}}
|
||||||
{{#operation}}
|
{{#operation}}
|
||||||
@ -21,7 +21,7 @@
|
|||||||
Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
|
Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
|
||||||
|
|
||||||
Method = {{httpMethod}},
|
Method = {{httpMethod}},
|
||||||
Path = ["{{{replacedPathName}}}"],
|
Path = [<<"{{{replacedPathName}}}">>],
|
||||||
QS = {{#queryParams.isEmpty}}[]{{/queryParams.isEmpty}}{{^queryParams.isEmpty}}lists:flatten([{{#joinWithComma}}{{#queryParams}}{{#required}}{{#qsEncode}}{{this}}{{/qsEncode}} {{/required}}{{/queryParams}}{{/joinWithComma}}])++{{packageName}}_utils:optional_params([{{#joinWithComma}}{{#queryParams}}{{^required}} '{{baseName}}'{{/required}}{{/queryParams}}{{/joinWithComma}}], _OptionalParams){{/queryParams.isEmpty}},
|
QS = {{#queryParams.isEmpty}}[]{{/queryParams.isEmpty}}{{^queryParams.isEmpty}}lists:flatten([{{#joinWithComma}}{{#queryParams}}{{#required}}{{#qsEncode}}{{this}}{{/qsEncode}} {{/required}}{{/queryParams}}{{/joinWithComma}}])++{{packageName}}_utils:optional_params([{{#joinWithComma}}{{#queryParams}}{{^required}} '{{baseName}}'{{/required}}{{/queryParams}}{{/joinWithComma}}], _OptionalParams){{/queryParams.isEmpty}},
|
||||||
Headers = {{#headerParams.isEmpty}}[]{{/headerParams.isEmpty}}{{^headerParams.isEmpty}}[{{#headerParams}}{{#required}} {<<"{{baseName}}">>, {{paramName}}}{{/required}}{{/headerParams}}]++{{packageName}}_utils:optional_params([{{#joinWithComma}}{{#headerParams}}{{^required}} '{{baseName}}'{{/required}}{{/headerParams}}{{/joinWithComma}}], _OptionalParams){{/headerParams.isEmpty}},
|
Headers = {{#headerParams.isEmpty}}[]{{/headerParams.isEmpty}}{{^headerParams.isEmpty}}[{{#headerParams}}{{#required}} {<<"{{baseName}}">>, {{paramName}}}{{/required}}{{/headerParams}}]++{{packageName}}_utils:optional_params([{{#joinWithComma}}{{#headerParams}}{{^required}} '{{baseName}}'{{/required}}{{/headerParams}}{{/joinWithComma}}], _OptionalParams){{/headerParams.isEmpty}},
|
||||||
Body1 = {{^formParams.isEmpty}}{form, [{{#joinWithComma}}{{#formParams}}{{#required}} {<<"{{baseName}}">>, {{paramName}}}{{/required}}{{/formParams}}{{/joinWithComma}}]++{{packageName}}_utils:optional_params([{{#joinWithComma}}{{#formParams}}{{^required}} '{{baseName}}'{{/required}}{{/formParams}}{{/joinWithComma}}], _OptionalParams)}{{/formParams.isEmpty}}{{#formParams.isEmpty}}{{#bodyParams.isEmpty}}[]{{/bodyParams.isEmpty}}{{^bodyParams.isEmpty}}{{#bodyParams}}{{paramName}}{{/bodyParams}}{{/bodyParams.isEmpty}}{{/formParams.isEmpty}},
|
Body1 = {{^formParams.isEmpty}}{form, [{{#joinWithComma}}{{#formParams}}{{#required}} {<<"{{baseName}}">>, {{paramName}}}{{/required}}{{/formParams}}{{/joinWithComma}}]++{{packageName}}_utils:optional_params([{{#joinWithComma}}{{#formParams}}{{^required}} '{{baseName}}'{{/required}}{{/formParams}}{{/joinWithComma}}], _OptionalParams)}{{/formParams.isEmpty}}{{#formParams.isEmpty}}{{#bodyParams.isEmpty}}[]{{/bodyParams.isEmpty}}{{^bodyParams.isEmpty}}{{#bodyParams}}{{paramName}}{{/bodyParams}}{{/bodyParams.isEmpty}}{{/formParams.isEmpty}},
|
||||||
|
@ -209,7 +209,7 @@ process_response(Response, Req0, State = #state{operation_id = OperationID}) ->
|
|||||||
{stop, Req, State}
|
{stop, Req, State}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec handle_request_json(cowboy_req:req(), state()) -> {cowboy_req:resp_body(), cowboy_req:req(), state()}.
|
-spec handle_request_json(cowboy_req:req(), state()) -> processed_response().
|
||||||
|
|
||||||
handle_request_json(
|
handle_request_json(
|
||||||
Req0,
|
Req0,
|
||||||
@ -233,7 +233,7 @@ handle_request_json(
|
|||||||
Body,
|
Body,
|
||||||
ValidatorState
|
ValidatorState
|
||||||
),
|
),
|
||||||
PreparedBody = jsx:encode(Body),
|
PreparedBody = prepare_body(Code, Body),
|
||||||
Response = {ok, {Code, Headers, PreparedBody}},
|
Response = {ok, {Code, Headers, PreparedBody}},
|
||||||
process_response(Response, Req1, State);
|
process_response(Response, Req1, State);
|
||||||
{error, Reason, Req1} ->
|
{error, Reason, Req1} ->
|
||||||
@ -241,3 +241,8 @@ handle_request_json(
|
|||||||
end.
|
end.
|
||||||
|
|
||||||
validate_headers(_, Req) -> {true, Req}.
|
validate_headers(_, Req) -> {true, Req}.
|
||||||
|
|
||||||
|
prepare_body(204, Body) when map_size(Body) == 0; length(Body) == 0 ->
|
||||||
|
<<>>;
|
||||||
|
prepare_body(_Code, Body) ->
|
||||||
|
jsx:encode(Body).
|
||||||
|
Loading…
x
Reference in New Issue
Block a user