adgoal/symfony-jsonrpc-http-server-openapi-doc

Symfony bundle for easy JSON-RPC server OpenAPI 3.0.0 documentation

v0.3.2 2020-03-27 16:54 UTC

This package is auto-updated.

Last update: 2020-07-27 17:50:48 UTC


README

License Code size Dependabot Status

Scrutinizer Build Status Scrutinizer Code Quality Code Coverage

Travis Build Status Travis Symfony Versions

Latest Stable Version Packagist PHP version

Symfony bundle for easy JSON-RPC server OpenAPI 3.0.0 documentation

Symfony bundle for adgoal/jsonrpc-http-server-openapi-doc-sdk

How to use

Once configured, your project is ready to handle HTTP GET request on /doc/openapi.json endpoint. Result will be a openapi compatible file.

See below how to configure it.

Configuration

Behat demo app configuration folders can be used as examples.

  • Add the bundles in your config/bundles.php file:

    // config/bundles.php
    return [
        ...
        Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
        Yoanm\SymfonyJsonRpcHttpServer\JsonRpcHttpServerBundle::class => ['all' => true],
        Yoanm\SymfonyJsonRpcHttpServerDoc\JsonRpcHttpServerDocBundle::class => ['all' => true],
        Yoanm\SymfonyJsonRpcHttpServerOpenAPIDoc\JsonRpcHttpServerOpenAPIDocBundle::class => ['all' => true],
        ...
    ];
  • Configure adgoal/symfony-jsonrpc-http-server as described on adgoal/symfony-jsonrpc-http-server documentation.

  • Configure adgoal/symfony-jsonrpc-http-server-doc as described on adgoal/symfony-jsonrpc-http-server-doc documentation.

  • Query your project at /doc/openapi.json endpoint and you will have a OpenAPI json documentation file of your server.

Event

You are able to enhance resulting documentation by listening on json_rpc_http_server_openapi_doc.array_created event.

See below an example of listener service configuration:

  method_doc_created.listener:
    class: Full\Namespace\DocCreatedListener # <-- replace by your class name
    tags:
      - name: 'kernel.event_listener'
        event: 'json_rpc_http_server_openapi_doc.array_created'
        method: 'enhanceMethodDoc' # <-- replace by your method name

You will receive an event of type OpenAPIDocCreatedEvent.

You can take example on Behat DocCreatedListener  

Contributing

See contributing note