Packages
oaspec
0.3.0
0.68.0
0.67.0
0.66.0
0.65.0
0.64.0
0.63.0
0.62.0
0.61.0
0.60.0
0.59.0
0.58.1
0.58.0
0.57.0
0.56.0
0.55.0
0.54.0
0.53.0
0.52.0
0.51.0
0.50.0
0.49.0
0.48.0
0.47.0
0.46.0
0.45.0
0.44.0
0.43.0
0.42.0
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.0
0.34.0
0.33.0
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.0
0.7.0
0.6.3
0.6.1
0.6.0
0.5.0
0.4.0
0.3.0
0.1.3
Generate Gleam code from OpenAPI 3.x specifications
Current section
Files
Jump to
Current section
Files
src/oaspec@openapi@spec.erl
-module(oaspec@openapi@spec).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/oaspec/openapi/spec.gleam").
-export([method_to_string/1, method_to_lower/1]).
-export_type([open_api_spec/0, info/0, server/0, components/0, security_scheme/0, security_scheme_ref/0, security_requirement/0, path_item/0, operation/0, parameter_in/0, parameter/0, request_body/0, media_type/0, response/0, http_method/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-type open_api_spec() :: {open_api_spec,
binary(),
info(),
gleam@dict:dict(binary(), path_item()),
gleam@option:option(components()),
list(server()),
list(security_requirement())}.
-type info() :: {info, binary(), gleam@option:option(binary()), binary()}.
-type server() :: {server, binary(), gleam@option:option(binary())}.
-type components() :: {components,
gleam@dict:dict(binary(), oaspec@openapi@schema:schema_ref()),
gleam@dict:dict(binary(), parameter()),
gleam@dict:dict(binary(), request_body()),
gleam@dict:dict(binary(), response()),
gleam@dict:dict(binary(), security_scheme())}.
-type security_scheme() :: {api_key_scheme, binary(), binary()} |
{http_scheme, binary(), gleam@option:option(binary())}.
-type security_scheme_ref() :: {security_scheme_ref, binary(), list(binary())}.
-type security_requirement() :: {security_requirement,
list(security_scheme_ref())}.
-type path_item() :: {path_item,
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(operation()),
gleam@option:option(operation()),
gleam@option:option(operation()),
gleam@option:option(operation()),
gleam@option:option(operation()),
list(parameter())}.
-type operation() :: {operation,
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
list(binary()),
list(parameter()),
gleam@option:option(request_body()),
gleam@dict:dict(binary(), response()),
boolean(),
gleam@option:option(list(security_requirement()))}.
-type parameter_in() :: in_path | in_query | in_header | in_cookie.
-type parameter() :: {parameter,
binary(),
parameter_in(),
gleam@option:option(binary()),
boolean(),
gleam@option:option(oaspec@openapi@schema:schema_ref()),
gleam@option:option(binary()),
boolean()}.
-type request_body() :: {request_body,
gleam@option:option(binary()),
gleam@dict:dict(binary(), media_type()),
boolean()}.
-type media_type() :: {media_type,
gleam@option:option(oaspec@openapi@schema:schema_ref())}.
-type response() :: {response,
gleam@option:option(binary()),
gleam@dict:dict(binary(), media_type())}.
-type http_method() :: get | post | put | delete | patch.
-file("src/oaspec/openapi/spec.gleam", 135).
?DOC(" Convert HTTP method to string.\n").
-spec method_to_string(http_method()) -> binary().
method_to_string(Method) ->
case Method of
get ->
<<"GET"/utf8>>;
post ->
<<"POST"/utf8>>;
put ->
<<"PUT"/utf8>>;
delete ->
<<"DELETE"/utf8>>;
patch ->
<<"PATCH"/utf8>>
end.
-file("src/oaspec/openapi/spec.gleam", 146).
?DOC(" Convert HTTP method to lowercase string.\n").
-spec method_to_lower(http_method()) -> binary().
method_to_lower(Method) ->
case Method of
get ->
<<"get"/utf8>>;
post ->
<<"post"/utf8>>;
put ->
<<"put"/utf8>>;
delete ->
<<"delete"/utf8>>;
patch ->
<<"patch"/utf8>>
end.