forked from loafle/openapi-generator-original
* Upgrade erlang-server code generation and fix is_authorized crashes * Introduce structured logging * Improve general formatting * Update generated files * Enable erlang server on CI * Add echo-server testing to CI * Require OTP27 explicitly in the generated rebar.config file * Rework handler and API With this work, json validation becomes optional, fully implemented in the `_api` module as it was before, but without being forcibly called by the `_handler`. It is instead left as optional for the user to take advantage of the exposed callbacks. Jesse also chooses draft-06 as a default, but these can be chosen manually by the user too, as long as jesse implements them. `_handler` also becomes lighter, it now handles all mime types transparently by forwarding to a user-given module that must implement `accept_callback/4` and `provide_callback/4` as described in the `_logic_handler` callbacks. These will simply be the return values of cowboy_rest's `content_types_accepted` and `content_types_provided` respectively, and should simply comply with their defined APIs. They only get two parameters extending the behaviour, so that the user-given callback can pattern-match on them: the path prefix of the logic handler, and the operationID of the call. * Fix return types for provide_callbacks * Upgrade jesse to incur no dependencies The less dependencies the built code requires the better. * Fix dialyzer errors in the generated code * Apply stronger dialyzer checks
36 lines
1.0 KiB
YAML
36 lines
1.0 KiB
YAML
name: Samples Erlang
|
|
|
|
on:
|
|
push:
|
|
paths:
|
|
- samples/server/echo_api/erlang-server/**
|
|
- samples/server/petstore/erlang-server/**
|
|
- samples/client/petstore/erlang-client/**
|
|
- samples/client/petstore/erlang-proper/**
|
|
pull_request:
|
|
paths:
|
|
- samples/server/echo_api/erlang-server/**
|
|
- samples/server/petstore/erlang-server/**
|
|
- samples/client/petstore/erlang-client/**
|
|
- samples/client/petstore/erlang-proper/**
|
|
jobs:
|
|
build:
|
|
name: Build Erlang projects
|
|
runs-on: ubuntu-24.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
sample:
|
|
- samples/server/echo_api/erlang-server/
|
|
- samples/server/petstore/erlang-server/
|
|
- samples/client/petstore/erlang-client/
|
|
- samples/client/petstore/erlang-proper/
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: erlef/setup-beam@v1
|
|
with:
|
|
otp-version: '27'
|
|
rebar3-version: '3.23.0'
|
|
- run: rebar3 compile
|
|
working-directory: ${{ matrix.sample }}
|