RESTful API Doc using SLIM and SWAGGER?
Solution 1
I think you are looking for this project: zircote/swagger-php
Here you'll find how to generate the doc on user request to a URL.
Basically you have to annotate your code with the Swagger Annotations, then create another route in Slim with a code similar to this:
<?php
use Swagger\Swagger;
$swagger = new Swagger('/project/root/top_level');
header("Content-Type: application/json")
echo $swagger->getResource('/pet', array('output' => 'json'));
And it will generate the Swagger API docs on the fly for you.
Solution 2
A short update to the answer of adosaiguas:
When using Slim Framework 4.0 and zircote/swagger-php one can provide an api endpoint providing the swagger / OpenAPI 3.0 json description using the following code:
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');
});
Related videos on Youtube
user2942586
Updated on July 09, 2022Comments
-
user2942586 almost 2 years
I am new to this stuff but I love it. I made a little REST Api using the Slim Framework. Now I would like to have an ongoing documentation about it. I think swagger is the right choice but I have not found out yet how to integrate it ?
Cheers & thanks for your patience :)
-
halfer almost 10 yearsI've heard good thing about Swagger - are there any docs on the associated website? However, my guess is this topic is too broad here - bear in mind that Stack Overflow is for programming problems involving code. If you can give it a go and edit this question about what you are stuck on, that would be great.
-
user2942586 almost 10 yearsI dont know how to integrate swagger in my PHP project. They offer a php client on Github and a Server integration tutorial for Java but this didnt take me further. At the moment I have no idea which steps I have to take. I dont want to put comments in my source and then run a tool which create s a documentation.
-
-
user2942586 almost 10 yearsthanks! but how do I integrate the swagger-UI with that then?
-
user2942586 almost 10 yearsgot it up and running :)
-
LeonardChallis almost 8 years@user2942586 Would you be so kind as to explain how you got it up and running?
-
adosaiguas almost 8 years@LeonardChallis You need to install swagger-ui: github.com/swagger-api/swagger-ui and make it point to the swagger route.
-
LeonardChallis almost 8 yearsThanks @adosaiguas