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

Symfony bundle for easy JSON-RPC server Swagger 2.0 documentation

v2.0.0 2024-03-29 14:53 UTC

This package is auto-updated.

Last update: 2024-10-29 17:02:17 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 Swagger 2.0 documentation

Symfony bundle for yoanm/jsonrpc-http-server-swagger-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/swagger.json endpoint. Result will be a swagger 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\SymfonyJsonRpcHttpServerSwaggerDoc\JsonRpcHttpServerSwaggerDocBundle::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/swagger.json endpoint and you will have a swagger json documentation file of your server.

Event

You are able to enhance resulting documentation by listening on json_rpc_http_server_swagger_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_swagger_doc.array_created'
        method: 'enhanceMethodDoc' # <-- replace by your method name

You will receive an event of type SwaggerDocCreatedEvent.

You can take example on Behat DocCreatedListener

Contributing

See contributing note