William Cheng 0204bf4ae2 Squashed commit of the following:
commit c5a0d0f7394aa742fa336fff7e7c1d3049761868
Merge: 8c4991ba3ed f8ff8c87609
Author: William Cheng <wing328hk@gmail.com>
Date:   Tue Aug 17 18:28:12 2021 +0800

    Merge branch 'mustache-linting' of https://github.com/NathanBaulch/openapi-generator into NathanBaulch-mustache-linting

commit f8ff8c87609b1ca36fa26fb8474806999638195e
Author: Nathan Baulch <nathan.baulch@gmail.com>
Date:   Thu Aug 5 14:12:47 2021 +1000

    Reorder tags that handle missing values

commit f5d8a33709d6a3f846a9fe4520b78c3d637051d9
Author: Nathan Baulch <nathan.baulch@gmail.com>
Date:   Thu Aug 5 14:08:59 2021 +1000

    Use dot notation where possible

commit 493d14921e2333f3ae19ef6fc89318b7e263a80c
Author: Nathan Baulch <nathan.baulch@gmail.com>
Date:   Thu Aug 5 14:10:49 2021 +1000

    Remove empty tags

commit 32480dc53f48227d55531b94e307d72671373737
Author: Nathan Baulch <nathan.baulch@gmail.com>
Date:   Thu Aug 5 10:41:58 2021 +1000

    Remove redundant sections

commit a8edabd722c34aa094b4aeb11c22664529c3a219
Author: Nathan Baulch <nathan.baulch@gmail.com>
Date:   Wed Aug 4 22:02:22 2021 +1000

    Trim extra EOF new lines

commit e89bd7458e3594bf0d30e580bc9408e45b018a57
Author: Nathan Baulch <nathan.baulch@gmail.com>
Date:   Wed Aug 4 21:59:26 2021 +1000

    Trim trailing whitespace
2021-08-17 18:37:51 +08:00

1.8 KiB

OpenAPI server library for Erlang

Overview

An Erlang server stub generated by OpenAPI Generator given an OpenAPI spec.

Dependency: Cowboy

Prerequisites

TODO

Getting started

Use erlang-server with erlang.mk

1, Create an application by using erlang.mk
	$ mkdir http_server
	$ cd http_server
	$ wget https://erlang.mk/erlang.mk
	$ make -f erlang.mk bootstrap bootstrap-rel
	$ make run

2, Modify the Makefile in the http_server directory to the following to introduce the dependency library:
	PROJECT = http_server
	PROJECT_DESCRIPTION = New project
	PROJECT_VERSION = 0.1.0

	DEPS = cowboy jesse jsx
	dep_cowboy_commit = 2.5.0
	dep_jesse_commit = 1.5.2
	dep_jsx_commit = 2.9.0
	DEP_PLUGINS = cowboy jesse jsx

	PACKAGES += rfc3339
	pkg_rfc3339_name = rfc3339
	pkg_rfc3339_description = an erlang/elixir rfc3339 lib
	pkg_rfc3339_homepage = https://github.com/talentdeficit/rfc3339
	pkg_rfc3339_fetch = git
	pkg_rfc3339_repo = https://github.com/talentdeficit/rfc3339
	pkg_rfc3339_commit = master

	 include erlang.mk

3, Generate erlang-server project using openapi-generator
	https://github.com/OpenAPITools/openapi-generator#2---getting-started

4, Copy erlang-server file to http_server project,Don't forget the 'priv' folder.

5, Start in the http_server project:
	1, Introduce the following line in the http_server_app:start(_Type, _Args) function
		openapi_server:start(http_server, #{ip=>{127,0,0,1}, port=>8080, net_opts=>[]})
	2, Compilation http_server project
		$ make
	3, Start erlang virtual machine
		$erl -pa ./deps/cowboy/ebin -pa ./deps/cowlib/ebin -pa ./deps/ranch/ebin -pa ./deps/jsx/ebin -pa ./deps/jesse/ebin -pa ./deps/rfc3339/ebin -pa ./ebin
	4, Start project
		application:ensure_all_started(http_server).