William Cheng 774013c7e1
Better OpenAPI spec v3 support: allOf, anyOf, oneOf (#1360)
* add oneOf support to Ruby

* add anyOf support to ruby client

* add discriminator support to ruby client

* fix typo

* update samples, fix NPE

* better format in ruby generator

* fix test cases, disable mapping test

* fix update script, update samples

* add test, fix mapping

* update exit code

* reenabled discriminator test

* remove duplicated properties

* add test for duplicated properties

* update samples, add new spec

* fix ruby test cases

* fix hasMore after removing duplicates

* refactor method, comment out haskell client test

* fix hasMore and update samples

* fix parent detection

* fix discriminator check

* [haskell-http-client] need to use {{vars}}{{required}} instead of {{requiredVars}}

* remove deprecated methods in default codegen (#1031)

* regenerate samples

* remove commented code
2018-12-07 00:30:20 +08:00
..

OpenAPI generated server

Generated by the OpenAPI Generator project.

Overview

This server stub aims to provide light, yet comprehensive structure for your API project using:

How to use

All you have to do to start development is:

  • install dependencies via Composer
  • create cache folder: mkdir -p ./data/cache/ZendCache (you will need it later for configuration and metadata caches - check comments in ./application/config.yml)
  • start PHP development server: php -S 0.0.0.0:8080 -t ./public (or any other SAPI you prefer, just make sure that you configure webroot to ./public and rewrites to ./public/index.php)

After that you should be able to call all methods from your API spec. Most of the negative scenarios should be handled:

  • 404 Not found for unknown routes
  • 406 Not acceptable for invalid Accept header
  • 415 Unsupported media type for invalid Content-Type header
  • 400 Malformed JSON for unparsable JSON body
  • 422 Unprocessable entity for parsable JSON body that fails validation

But for obvious reason you will not get any 200 OK, only 500 Not implemented. So your next steps are:

  • check all TODOs left in the stub code where generator was not smart enough and could not guarantee correct implementation
  • implement your API security mechanism (either special attribute or separate middleware) - generator does not do anything about it yet
  • implement your handlers - the most tricky part :)

Enjoy!

Hopefully this stub will reduce the amount of boilerplate code you have to write manually. If you have any suggestions or questions about ze-ph generator, feel free to create issue either in Path Handler repository or in OpenAPI Generator repository.