RESTful API Doc 使用 SLIM 和 SWAGGER?

2022-08-30 19:57:28

我是这个东西的新手,但我喜欢它。我使用Slim Framework制作了一个小的REST Api。现在我想有一个关于它的持续文档。我认为swagger是正确的选择,但我还没有发现如何整合它?

干杯,感谢您的耐心:)


答案 1

我想你正在寻找这个项目:zircote/swagger-php

在这里,您将了解如何根据用户对URL的请求生成文档。

基本上,您必须使用Swagger注释来注释代码,然后在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文档。


答案 2

对adosaiguas的答案的简短更新:

当使用Slim Framework 4.0zircote/swagger-php时,可以使用以下代码提供一个api端点,提供swagger / OpenAPI 3.0 json描述:

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');
});


推荐