Dieser Artikel vermittelt Ihnen relevantes Wissen über Laravel, das hauptsächlich Probleme im Zusammenhang mit der Verwendung von Swagger als Beispiel ansieht. Ich hoffe, dass es für alle hilfreich ist.
【Verwandte Empfehlung: Laravel-Video-Tutorial】
Dieses Tutorial basiert auf der Laravel-Generierung von Swagger. Tatsächlich ist dieses Ding im Grunde dasselbe wie eine Sprache oder ein Framework, da sie alle öffentliches JSON verwenden. Die durch Swagger vorgegebene „Sprache“ wird durch das Programm gescannt , und die generierte Struktur wird im JSON-Format gespeichert und über die Swagger-Benutzeroberfläche angezeigt (oder von Ihnen selbst entwickelt).
Für PHP-Entwickler mögen die meisten Studenten keine Prahlerei. Weil das Schreiben sehr mühsam zu sein scheint. Wenn ich an den Code denke, der in wenigen Minuten in PHP geschrieben werden kann, dauert das Schreiben von Prahlerei 10 Minuten, und ich bin dagegen.
Studenten, die an der Java-Entwicklung beteiligt sind, wissen, dass die meisten von ihnen Swagger verwenden, da Java die Datenstruktur beibehalten muss und Swagger flexibler in Java zu integrieren ist.
Wenn Sie zu diesem Zeitpunkt PHP in Java sehen, das sagt, dass Prahlerei unmenschlich ist, wird es zu mühsam sein. Es ist ein Produkt aus alten Zeiten. Die Java-Freunde um Sie herum werden insgeheim froh sein, dass sie nicht so nützliche Dinge verwenden, und sie sagen auch, dass PHP die beste Sprache der Welt ist.
laravel-admin
,一条命令生成CURD,但是生成之后,数据看上去很冷。 比如有一些字段不需要显示,有一些是要select关联枚举的,有一些是 hasMany
composer require "darkaonline/l5-swagger"
Verwendung:
php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider" php artisan l5-swagger:generate
/api/documentation
Verwenden Sie das Strukturschema als Anforderungsparameter
/** * @OA\Info( * version="1.0.0", * title="L5 OpenApi", * description="L5 Swagger OpenApi description", * @OA\Contact( * email="darius@matulionis.lt" * ), * @OA\License( * name="Apache 2.0", * url="http://www.apache.org/licenses/LICENSE-2.0.html" * ) * ) */
Die Verwendung von Schema
/** * @OA\Get( * path="/projects/{id}", * operationId="getProjectById", * tags={"Projects"}, * summary="Get project information", * description="Returns project data", * @OA\Parameter( * name="id", * description="Project id", * required=true, * in="path", * @OA\Schema( * type="integer" * ) * ), * @OA\Response( * response=200, * description="successful operation" * ), * @OA\Response(response=400, description="Bad request"), * @OA\Response(response=404, description="Resource Not Found"), * security={ * { * "oauth2_security_example": {"write:projects", "read:projects"} * } * }, * ) */
/** * @OA\Post( * path="/api/test/store", * operationId="api/test/store", * tags={"Test"}, * summary="Test创建", * description="Test提交创建", * @OA\Parameter( * name="id", * description="", * required=false, * in="query", * ), * @OA\Response( * response=200, * description="successful operation", * @OA\JsonContent( * ref="#/components/schemas/Test" * ) * ), * @OA\Response(response=400, description="Bad request"), * @OA\Response(response=404, description="Resource Not Found"), * security={ * { * "api_key":{} * } * }, * ) */
, das bestimmten Feldern im Modell
* @OA\RequestBody( * @OA\MediaType( * mediaType="multipart/form-data", * @OA\Schema( * type="object", * @OA\Property( * property="file", * type="file", * ), * ), * ) * ),
* @OA\Parameter( * name="status", * in="query", * description="状态", * required=true, * explode=true, * @OA\Schema( * type="array", * default="available", * @OA\Items( * type="string", * enum = {"available", "pending", "sold"}, * ) * ) * ),
* @OA\RequestBody( * @OA\MediaType( * mediaType="application/json", * @OA\Schema( * @OA\Property( * property="id", * type="string" * ), * @OA\Property( * property="name", * type="string" * ), * example={"id": 10, "name": "Jessica Smith"} * ) * ) * ),
* @OA\RequestBody( * description="order placed for purchasing th pet", * required=true, * @OA\JsonContent(ref="#/components/schemas/UserModel") * ),
/** * @OA\Schema( * schema="UserModel", * required={"username", "age"}, * @OA\Property( * property="username", * format="string", * description="用户名称", * example="小廖", * ), * @OA\Property( * property="age", * format="int", * description="年龄", * example=1, * nullable=true, * ) * ) */
/** * @OA\Schema( * schema="product_status", * type="string", * description="The status of a product", * enum={"available", "discontinued"}, * default="available" * ) */
Zu diesem Zeitpunkt wird ein sperrenähnliches Ding angezeigt in der Swagger-Ui
Okay Geben Sie Ihren eigenen Token ein, und der Token wird bei einer Anfrage mitgebracht* @OA\Property( * property="status", * ref="#/components/schemas/product_status" * ),
Das obige ist der detaillierte Inhalt vonErfahren Sie mehr über die Verwendung von Laravel Swagger. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!