我对这些东西很陌生,但我喜欢它。我使用 Slim 框架制作了一个小 REST Api。现在我想要一份关于它的持续文档。我认为 swagger 是正确的选择,但我还没有找到如何整合它?
干杯并感谢您的耐心:)
我对这些东西很陌生,但我喜欢它。我使用 Slim 框架制作了一个小 REST Api。现在我想要一份关于它的持续文档。我认为 swagger 是正确的选择,但我还没有找到如何整合它?
干杯并感谢您的耐心:)
我想你正在寻找这个项目:zircote/swagger-php
在这里,您将了解如何根据用户对 URL 的请求生成文档。
基本上你必须用 Swagger Annotations 来注释你的代码,然后在 Slim 中创建另一个路由,代码类似于:
<?php
use Swagger\Swagger;
$swagger = new Swagger('/project/root/top_level');
header("Content-Type: application/json")
echo $swagger->getResource('/pet', array('output' => 'json'));
它将为您即时生成 Swagger API 文档。
adosaiguas 答案的简短更新:
当使用Slim Framework 4.0和zircote/swagger-php 时,可以使用以下代码提供一个提供 swagger / OpenAPI 3.0 json 描述的 api 端点:
use function OpenApi\scan;
/**
* @OA\Get(
* path="/openapi",
* tags={"documentation"},
* summary="OpenAPI JSON File that describes the API",
* @OA\Response(response="200", description="OpenAPI Description File"),
* )
*/
$app->get('/openapi', function ($request, $response, $args) {
$swagger = scan('--PATH TO PROJECT ROOT--');
$response->getBody()->write(json_encode($swagger));
return $response->withHeader('Content-Type', 'application/json');
});