micro-module/symfony-jsonrpc-http-server-openapi-doc

Symfony bundle for easy JSON-RPC server OpenAPI 3.0.0 documentation

v1.0.2 2023-07-24 11:25 UTC

This package is auto-updated.

Last update: 2024-04-24 13:05:32 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 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