Skip to content

Commit 0013482

Browse files
authored
Documentation (#24)
1 parent d8e393f commit 0013482

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,7 +9,66 @@
99

1010
SDK to generate Http JSON-RPC server documentation for Swagger v2.0
1111

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

16+
Create the normalizer :
17+
```php
18+
use Yoanm\JsonRpcHttpServerSwaggerDoc\App\Normalizer\Component\ErrorDocNormalizer;
19+
use Yoanm\JsonRpcHttpServerSwaggerDoc\App\Normalizer\Component\ExternalSchemaListDocNormalizer;
20+
use Yoanm\JsonRpcHttpServerSwaggerDoc\App\Normalizer\Component\OperationDocNormalizer;
21+
use Yoanm\JsonRpcHttpServerSwaggerDoc\App\Normalizer\Component\RequestDocNormalizer;
22+
use Yoanm\JsonRpcHttpServerSwaggerDoc\App\Normalizer\Component\ResponseDocNormalizer;
23+
use Yoanm\JsonRpcHttpServerSwaggerDoc\App\Normalizer\Component\SchemaTypeNormalizer;
24+
use Yoanm\JsonRpcHttpServerSwaggerDoc\App\Normalizer\Component\ShapeNormalizer;
25+
use Yoanm\JsonRpcHttpServerSwaggerDoc\App\Normalizer\Component\TypeDocNormalizer;
26+
use Yoanm\JsonRpcHttpServerSwaggerDoc\App\Resolver\DefinitionRefResolver;
27+
use Yoanm\JsonRpcHttpServerSwaggerDoc\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+
$shapeNormalizer
44+
),
45+
new OperationDocNormalizer(
46+
$definitionRefResolver,
47+
new RequestDocNormalizer(
48+
$definitionRefResolver,
49+
$shapeNormalizer
50+
),
51+
new ResponseDocNormalizer(
52+
$definitionRefResolver,
53+
$shapeNormalizer
54+
)
55+
)
56+
);
57+
```
58+
59+
Then you can convert `ServerDoc` or `HttpServerDoc` by doing :
60+
```php
61+
use Yoanm\JsonRpcServerDoc\Domain\Model\ServerDoc;
62+
63+
$serverDoc = new ServerDoc();
64+
// Configure server doc
65+
...
66+
// Add methods documentation
67+
...
68+
// Then normalize
69+
/** @var array $swaggerDoc */
70+
$swaggerDoc = $normalizer->normalize($serverDoc);
71+
```
72+
1473
## Contributing
1574
See [contributing note](./CONTRIBUTING.md)

features/bootstrap/DocNormalizerContext.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,10 +219,9 @@ public function givenLastMethodDocWillHaveACustomErrorDoc()
219219
public function whenINormalizeServerDoc()
220220
{
221221
$shapeNormalizer = new ShapeNormalizer();
222-
$schemaTypeNormalizer = new SchemaTypeNormalizer();
223222
$definitionRefResolver = new DefinitionRefResolver();
224223
$typeDocNormalizer = new TypeDocNormalizer(
225-
$schemaTypeNormalizer
224+
new SchemaTypeNormalizer()
226225
);
227226
$normalizer = new DocNormalizer(
228227
new ExternalSchemaListDocNormalizer(

0 commit comments

Comments
 (0)