Skip to content

Commit a029d8d

Browse files
authored
Documentation (#9)
1 parent aec1e5a commit a029d8d

File tree

2 files changed

+60
-2
lines changed

2 files changed

+60
-2
lines changed

README.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,67 @@
99

1010
SDK to generate Http JSON-RPC server documentation for OpenAPI v3.0.0
1111

12+
See [`yoanm/symfony-jsonrpc-http-server-openapi-doc`](https://github.com/yoanm/symfony-jsonrpc-http-server-openapi-doc) for automatic dependency injection.
13+
1214
## How to use
1315

16+
Create the normalizer :
17+
```php
18+
use Yoanm\JsonRpcHttpServerOpenAPIDoc\App\Normalizer\Component\ErrorDocNormalizer;
19+
use Yoanm\JsonRpcHttpServerOpenAPIDoc\App\Normalizer\Component\ExternalSchemaListDocNormalizer;
20+
use Yoanm\JsonRpcHttpServerOpenAPIDoc\App\Normalizer\Component\OperationDocNormalizer;
21+
use Yoanm\JsonRpcHttpServerOpenAPIDoc\App\Normalizer\Component\RequestDocNormalizer;
22+
use Yoanm\JsonRpcHttpServerOpenAPIDoc\App\Normalizer\Component\ResponseDocNormalizer;
23+
use Yoanm\JsonRpcHttpServerOpenAPIDoc\App\Normalizer\Component\SchemaTypeNormalizer;
24+
use Yoanm\JsonRpcHttpServerOpenAPIDoc\App\Normalizer\Component\ShapeNormalizer;
25+
use Yoanm\JsonRpcHttpServerOpenAPIDoc\App\Normalizer\Component\TypeDocNormalizer;
26+
use Yoanm\JsonRpcHttpServerOpenAPIDoc\App\Resolver\DefinitionRefResolver;
27+
use Yoanm\JsonRpcHttpServerOpenAPIDoc\Infra\Normalizer\DocNormalizer;
28+
29+
$shapeNormalizer = new ShapeNormalizer();
30+
$definitionRefResolver = new DefinitionRefResolver();
31+
$typeDocNormalizer = new TypeDocNormalizer(
32+
new SchemaTypeNormalizer()
33+
);
34+
35+
$normalizer = new DocNormalizer(
36+
new ExternalSchemaListDocNormalizer(
37+
$definitionRefResolver,
38+
$typeDocNormalizer,
39+
new ErrorDocNormalizer(
40+
$typeDocNormalizer,
41+
$shapeNormalizer
42+
)
43+
),
44+
new OperationDocNormalizer(
45+
$definitionRefResolver,
46+
new RequestDocNormalizer(
47+
$definitionRefResolver,
48+
$shapeNormalizer
49+
),
50+
new ResponseDocNormalizer(
51+
$definitionRefResolver,
52+
$shapeNormalizer
53+
)
54+
)
55+
);
56+
```
57+
58+
Then you can convert `ServerDoc` or `HttpServerDoc` by doing :
59+
```php
60+
use Yoanm\JsonRpcServerDoc\Domain\Model\ServerDoc;
61+
62+
$serverDoc = new ServerDoc();
63+
// Configure server doc
64+
...
65+
// Add methods documentation
66+
...
67+
// Then normalize
68+
/** @var array $openAPIDoc */
69+
$openAPIDoc = $normalizer->normalize($serverDoc);
70+
```
71+
72+
1473

1574
## Contributing
1675
See [contributing note](./CONTRIBUTING.md)

features/bootstrap/DocNormalizerContext.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,10 +220,9 @@ public function givenLastMethodDocWillHaveACustomErrorDoc()
220220
public function whenINormalizeServerDoc()
221221
{
222222
$shapeNormalizer = new ShapeNormalizer();
223-
$schemaTypeNormalizer = new SchemaTypeNormalizer();
224223
$definitionRefResolver = new DefinitionRefResolver();
225224
$typeDocNormalizer = new TypeDocNormalizer(
226-
$schemaTypeNormalizer
225+
new SchemaTypeNormalizer()
227226
);
228227
$normalizer = new DocNormalizer(
229228
new ExternalSchemaListDocNormalizer(

0 commit comments

Comments
 (0)