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

Symfony bundle for easy JSON-RPC server OpenAPI 3.0.0 documentation

v1.0.1 2020-07-09 11:44 UTC

This package is auto-updated.

Last update: 2024-04-09 20:09:12 UTC


README

License Code size Dependabot Status

Scrutinizer Build Status Scrutinizer Code Quality Codacy Badge

CI codecov Symfony Versions

Latest Stable Version Packagist PHP version

Symfony bundle for easy JSON-RPC server OpenAPI 3.0.0 documentation

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

Versions

  • Symfony v3/4 - PHP >=7.1 : ^v0.X
  • Symfony v4/5 - PHP >=7.2 : ^v1.0

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 yoanm/symfony-jsonrpc-http-server as described on yoanm/symfony-jsonrpc-http-server documentation.

  • Configure yoanm/symfony-jsonrpc-http-server-doc as described on yoanm/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