优秀的编程知识分享平台

网站首页 > 技术文章 正文

PHP7.3使用Swagger的注意事项(php.ini配置详解)

nanyue 2024-08-07 18:56:03 技术文章 10 ℃

PHP7.3需要使用swager3才能正常工作,以下是配置过程,最新版的swagger4.8实际是不能在php7.3使用而是需要php8.1或以上版本。

  1. 设置composer的配置版本文件(composer.json),内容如下

{

"require": {

"zircote/swagger-php": "^3"

}

}

2. 通过composer命令安装swagger-php3,注意要删除目录下的composer.lock文件

# composer install

安装成功后,在当前目录下会新一个vendor目录,swagger在这个目录:

./vendor/zircote/swagger-php

3. 在vendor目录的同级建立待扫描php文件Myapi.php

内容如下:


<?php

require_once __DIR__ . '/vendor/autoload.php';

use OpenApi\Annotations as OA;

/**

* @OA\Info(

* title="API文档",

* version="1.0.0"

* )

*/

/**

* @OA\Get(

* path="/api/users",

* summary="获取用户列表",

* @OA\Response(

* response="200",

* description="成功",

* @OA\JsonContent(

* type="array",

* @OA\Items(

* @OA\Property(property="id", type="integer"),

* @OA\Property(property="name", type="string"),

* @OA\Property(property="email", type="string")

* )

* )

* )

* )

*/

function getUsers()

{

// 实际处理获取用户列表的逻辑

}

$openapi = \OpenApi\scan(__FILE__);

header('Content-Type: application/json');

echo $openapi->toJson();


最后测试swagger扫描Myapi.php文件后生成的json文件:

#php Myapi.php

在这里应该能在命令行状态输出一个json结构的内容了,如下:

{

"openapi": "3.0.0",

"info": {

"title": "API文档",

"version": "1.0.0"

},

"paths": {

"/api/users": {

"get": {

"summary": "获取用户列表",

"operationId": "7bd7c7d37c7765793d354dba6a0679b5",

"responses": {

"200": {

"description": "成功",

"content": {

"application/json": {

"schema": {

"type": "array",

"items": {

"properties": {

"id": {

"type": "integer"

},

"name": {

"type": "string"

},

"email": {

"type": "string"

}

},

"type": "object"

}}}}}}}}}}

最近发表
标签列表