Live2D

如何写swagger接口文档

地址:Swagger Editor

 

  1 openapi: 3.0.3
  2 info:
  3   title: Swagger Petstore - OpenAPI 3.0
  4   description: |-
  5     This is a sample Pet Store Server based on the OpenAPI 3.0 specification.  You can find out more about
  6     Swagger at [https://swagger.io](https://swagger.io). In the third iteration of the pet store, we've switched to the design first approach!
  7     You can now help us improve the API whether it's by making changes to the definition itself or to the code.
  8     That way, with time, we can improve the API in general, and expose some of the new features in OAS3.
  9 
 10     _If you're looking for the Swagger 2.0/OAS 2.0 version of Petstore, then click [here](https://editor.swagger.io/?url=https://petstore.swagger.io/v2/swagger.yaml). Alternatively, you can load via the `Edit > Load Petstore OAS 2.0` menu option!_
 11     
 12     Some useful links:
 13     - [The Pet Store repository](https://github.com/swagger-api/swagger-petstore)
 14     - [The source API definition for the Pet Store](https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml)
 15   termsOfService: http://swagger.io/terms/
 16   contact:
 17     email: apiteam@swagger.io
 18   license:
 19     name: Apache 2.0
 20     url: http://www.apache.org/licenses/LICENSE-2.0.html
 21   version: 1.0.11
 22 externalDocs:
 23   description: Find out more about Swagger
 24   url: http://swagger.io
 25 servers:
 26   - url: https://petstore3.swagger.io/api/v3
 27 tags:
 28   - name: pet
 29     description: Everything about your Pets
 30     externalDocs:
 31       description: Find out more
 32       url: http://swagger.io
 33   - name: store
 34     description: Access to Petstore orders
 35     externalDocs:
 36       description: Find out more about our store
 37       url: http://swagger.io
 38   - name: user
 39     description: Operations about user
 40 paths:
 41   /pet:
 42     put:
 43       tags:
 44         - pet
 45       summary: Update an existing pet
 46       description: Update an existing pet by Id
 47       operationId: updatePet
 48       requestBody:
 49         description: Update an existent pet in the store
 50         content:
 51           application/json:
 52             schema:
 53               $ref: '#/components/schemas/Pet'
 54           application/xml:
 55             schema:
 56               $ref: '#/components/schemas/Pet'
 57           application/x-www-form-urlencoded:
 58             schema:
 59               $ref: '#/components/schemas/Pet'
 60         required: true
 61       responses:
 62         '200':
 63           description: Successful operation
 64           content:
 65             application/json:
 66               schema:
 67                 $ref: '#/components/schemas/Pet'          
 68             application/xml:
 69               schema:
 70                 $ref: '#/components/schemas/Pet'
 71         '400':
 72           description: Invalid ID supplied
 73         '404':
 74           description: Pet not found
 75         '405':
 76           description: Validation exception
 77       security:
 78         - petstore_auth:
 79             - write:pets
 80             - read:pets
 81     post:
 82       tags:
 83         - pet
 84       summary: Add a new pet to the store
 85       description: Add a new pet to the store
 86       operationId: addPet
 87       requestBody:
 88         description: Create a new pet in the store
 89         content:
 90           application/json:
 91             schema:
 92               $ref: '#/components/schemas/Pet'
 93           application/xml:
 94             schema:
 95               $ref: '#/components/schemas/Pet'
 96           application/x-www-form-urlencoded:
 97             schema:
 98               $ref: '#/components/schemas/Pet'
 99         required: true
100       responses:
101         '200':
102           description: Successful operation
103           content:
104             application/json:
105               schema:
106                 $ref: '#/components/schemas/Pet'          
107             application/xml:
108               schema:
109                 $ref: '#/components/schemas/Pet'
110         '405':
111           description: Invalid input
112       security:
113         - petstore_auth:
114             - write:pets
115             - read:pets
116   /pet/findByStatus:
117     get:
118       tags:
119         - pet
120       summary: Finds Pets by status
121       description: Multiple status values can be provided with comma separated strings
122       operationId: findPetsByStatus
123       parameters:
124         - name: status
125           in: query
126           description: Status values that need to be considered for filter
127           required: false
128           explode: true
129           schema:
130             type: string
131             default: available
132             enum:
133               - available
134               - pending
135               - sold
136       responses:
137         '200':
138           description: successful operation
139           content:
140             application/json:
141               schema:
142                 type: array
143                 items:
144                   $ref: '#/components/schemas/Pet'          
145             application/xml:
146               schema:
147                 type: array
148                 items:
149                   $ref: '#/components/schemas/Pet'
150         '400':
151           description: Invalid status value
152       security:
153         - petstore_auth:
154             - write:pets
155             - read:pets
156   /pet/findByTags:
157     get:
158       tags:
159         - pet
160       summary: Finds Pets by tags
161       description: Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
162       operationId: findPetsByTags
163       parameters:
164         - name: tags
165           in: query
166           description: Tags to filter by
167           required: false
168           explode: true
169           schema:
170             type: array
171             items:
172               type: string
173       responses:
174         '200':
175           description: successful operation
176           content:
177             application/json:
178               schema:
179                 type: array
180                 items:
181                   $ref: '#/components/schemas/Pet'          
182             application/xml:
183               schema:
184                 type: array
185                 items:
186                   $ref: '#/components/schemas/Pet'
187         '400':
188           description: Invalid tag value
189       security:
190         - petstore_auth:
191             - write:pets
192             - read:pets
193   /pet/{petId}:
194     get:
195       tags:
196         - pet
197       summary: Find pet by ID
198       description: Returns a single pet
199       operationId: getPetById
200       parameters:
201         - name: petId
202           in: path
203           description: ID of pet to return
204           required: true
205           schema:
206             type: integer
207             format: int64
208       responses:
209         '200':
210           description: successful operation
211           content:
212             application/json:
213               schema:
214                 $ref: '#/components/schemas/Pet'          
215             application/xml:
216               schema:
217                 $ref: '#/components/schemas/Pet'
218         '400':
219           description: Invalid ID supplied
220         '404':
221           description: Pet not found
222       security:
223         - api_key: []
224         - petstore_auth:
225             - write:pets
226             - read:pets
227     post:
228       tags:
229         - pet
230       summary: Updates a pet in the store with form data
231       description: ''
232       operationId: updatePetWithForm
233       parameters:
234         - name: petId
235           in: path
236           description: ID of pet that needs to be updated
237           required: true
238           schema:
239             type: integer
240             format: int64
241         - name: name
242           in: query
243           description: Name of pet that needs to be updated
244           schema:
245             type: string
246         - name: status
247           in: query
248           description: Status of pet that needs to be updated
249           schema:
250             type: string
251       responses:
252         '405':
253           description: Invalid input
254       security:
255         - petstore_auth:
256             - write:pets
257             - read:pets
258     delete:
259       tags:
260         - pet
261       summary: Deletes a pet
262       description: delete a pet
263       operationId: deletePet
264       parameters:
265         - name: api_key
266           in: header
267           description: ''
268           required: false
269           schema:
270             type: string
271         - name: petId
272           in: path
273           description: Pet id to delete
274           required: true
275           schema:
276             type: integer
277             format: int64
278       responses:
279         '400':
280           description: Invalid pet value
281       security:
282         - petstore_auth:
283             - write:pets
284             - read:pets
285   /pet/{petId}/uploadImage:
286     post:
287       tags:
288         - pet
289       summary: uploads an image
290       description: ''
291       operationId: uploadFile
292       parameters:
293         - name: petId
294           in: path
295           description: ID of pet to update
296           required: true
297           schema:
298             type: integer
299             format: int64
300         - name: additionalMetadata
301           in: query
302           description: Additional Metadata
303           required: false
304           schema:
305             type: string
306       requestBody:
307         content:
308           application/octet-stream:
309             schema:
310               type: string
311               format: binary
312       responses:
313         '200':
314           description: successful operation
315           content:
316             application/json:
317               schema:
318                 $ref: '#/components/schemas/ApiResponse'
319       security:
320         - petstore_auth:
321             - write:pets
322             - read:pets
323   /store/inventory:
324     get:
325       tags:
326         - store
327       summary: Returns pet inventories by status
328       description: Returns a map of status codes to quantities
329       operationId: getInventory
330       responses:
331         '200':
332           description: successful operation
333           content:
334             application/json:
335               schema:
336                 type: object
337                 additionalProperties:
338                   type: integer
339                   format: int32
340       security:
341         - api_key: []
342   /store/order:
343     post:
344       tags:
345         - store
346       summary: Place an order for a pet
347       description: Place a new order in the store
348       operationId: placeOrder
349       requestBody:
350         content:
351           application/json:
352             schema:
353               $ref: '#/components/schemas/Order'
354           application/xml:
355             schema:
356               $ref: '#/components/schemas/Order'
357           application/x-www-form-urlencoded:
358             schema:
359               $ref: '#/components/schemas/Order'
360       responses:
361         '200':
362           description: successful operation
363           content:
364             application/json:
365               schema:
366                 $ref: '#/components/schemas/Order'
367         '405':
368           description: Invalid input
369   /store/order/{orderId}:
370     get:
371       tags:
372         - store
373       summary: Find purchase order by ID
374       description: For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions.
375       operationId: getOrderById
376       parameters:
377         - name: orderId
378           in: path
379           description: ID of order that needs to be fetched
380           required: true
381           schema:
382             type: integer
383             format: int64
384       responses:
385         '200':
386           description: successful operation
387           content:
388             application/json:
389               schema:
390                 $ref: '#/components/schemas/Order'          
391             application/xml:
392               schema:
393                 $ref: '#/components/schemas/Order'
394         '400':
395           description: Invalid ID supplied
396         '404':
397           description: Order not found
398     delete:
399       tags:
400         - store
401       summary: Delete purchase order by ID
402       description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
403       operationId: deleteOrder
404       parameters:
405         - name: orderId
406           in: path
407           description: ID of the order that needs to be deleted
408           required: true
409           schema:
410             type: integer
411             format: int64
412       responses:
413         '400':
414           description: Invalid ID supplied
415         '404':
416           description: Order not found
417   /user:
418     post:
419       tags:
420         - user
421       summary: Create user
422       description: This can only be done by the logged in user.
423       operationId: createUser
424       requestBody:
425         description: Created user object
426         content:
427           application/json:
428             schema:
429               $ref: '#/components/schemas/User'
430           application/xml:
431             schema:
432               $ref: '#/components/schemas/User'
433           application/x-www-form-urlencoded:
434             schema:
435               $ref: '#/components/schemas/User'
436       responses:
437         default:
438           description: successful operation
439           content:
440             application/json:
441               schema:
442                 $ref: '#/components/schemas/User'
443             application/xml:
444               schema:
445                 $ref: '#/components/schemas/User'
446   /user/createWithList:
447     post:
448       tags:
449         - user
450       summary: Creates list of users with given input array
451       description: Creates list of users with given input array
452       operationId: createUsersWithListInput
453       requestBody:
454         content:
455           application/json:
456             schema:
457               type: array
458               items:
459                 $ref: '#/components/schemas/User'
460       responses:
461         '200':
462           description: Successful operation
463           content:
464             application/json:
465               schema:
466                 $ref: '#/components/schemas/User'          
467             application/xml:
468               schema:
469                 $ref: '#/components/schemas/User'
470         default:
471           description: successful operation
472   /user/login:
473     get:
474       tags:
475         - user
476       summary: Logs user into the system
477       description: ''
478       operationId: loginUser
479       parameters:
480         - name: username
481           in: query
482           description: The user name for login
483           required: false
484           schema:
485             type: string
486         - name: password
487           in: query
488           description: The password for login in clear text
489           required: false
490           schema:
491             type: string
492       responses:
493         '200':
494           description: successful operation
495           headers:
496             X-Rate-Limit:
497               description: calls per hour allowed by the user
498               schema:
499                 type: integer
500                 format: int32
501             X-Expires-After:
502               description: date in UTC when token expires
503               schema:
504                 type: string
505                 format: date-time
506           content:
507             application/xml:
508               schema:
509                 type: string
510             application/json:
511               schema:
512                 type: string
513         '400':
514           description: Invalid username/password supplied
515   /user/logout:
516     get:
517       tags:
518         - user
519       summary: Logs out current logged in user session
520       description: ''
521       operationId: logoutUser
522       parameters: []
523       responses:
524         default:
525           description: successful operation
526   /user/{username}:
527     get:
528       tags:
529         - user
530       summary: Get user by user name
531       description: ''
532       operationId: getUserByName
533       parameters:
534         - name: username
535           in: path
536           description: 'The name that needs to be fetched. Use user1 for testing. '
537           required: true
538           schema:
539             type: string
540       responses:
541         '200':
542           description: successful operation
543           content:
544             application/json:
545               schema:
546                 $ref: '#/components/schemas/User'          
547             application/xml:
548               schema:
549                 $ref: '#/components/schemas/User'
550         '400':
551           description: Invalid username supplied
552         '404':
553           description: User not found
554     put:
555       tags:
556         - user
557       summary: Update user
558       description: This can only be done by the logged in user.
559       operationId: updateUser
560       parameters:
561         - name: username
562           in: path
563           description: name that need to be deleted
564           required: true
565           schema:
566             type: string
567       requestBody:
568         description: Update an existent user in the store
569         content:
570           application/json:
571             schema:
572               $ref: '#/components/schemas/User'
573           application/xml:
574             schema:
575               $ref: '#/components/schemas/User'
576           application/x-www-form-urlencoded:
577             schema:
578               $ref: '#/components/schemas/User'
579       responses:
580         default:
581           description: successful operation
582     delete:
583       tags:
584         - user
585       summary: Delete user
586       description: This can only be done by the logged in user.
587       operationId: deleteUser
588       parameters:
589         - name: username
590           in: path
591           description: The name that needs to be deleted
592           required: true
593           schema:
594             type: string
595       responses:
596         '400':
597           description: Invalid username supplied
598         '404':
599           description: User not found
600 components:
601   schemas:
602     Order:
603       type: object
604       properties:
605         id:
606           type: integer
607           format: int64
608           example: 10
609         petId:
610           type: integer
611           format: int64
612           example: 198772
613         quantity:
614           type: integer
615           format: int32
616           example: 7
617         shipDate:
618           type: string
619           format: date-time
620         status:
621           type: string
622           description: Order Status
623           example: approved
624           enum:
625             - placed
626             - approved
627             - delivered
628         complete:
629           type: boolean
630       xml:
631         name: order
632     Customer:
633       type: object
634       properties:
635         id:
636           type: integer
637           format: int64
638           example: 100000
639         username:
640           type: string
641           example: fehguy
642         address:
643           type: array
644           xml:
645             name: addresses
646             wrapped: true
647           items:
648             $ref: '#/components/schemas/Address'
649       xml:
650         name: customer
651     Address:
652       type: object
653       properties:
654         street:
655           type: string
656           example: 437 Lytton
657         city:
658           type: string
659           example: Palo Alto
660         state:
661           type: string
662           example: CA
663         zip:
664           type: string
665           example: '94301'
666       xml:
667         name: address
668     Category:
669       type: object
670       properties:
671         id:
672           type: integer
673           format: int64
674           example: 1
675         name:
676           type: string
677           example: Dogs
678       xml:
679         name: category
680     User:
681       type: object
682       properties:
683         id:
684           type: integer
685           format: int64
686           example: 10
687         username:
688           type: string
689           example: theUser
690         firstName:
691           type: string
692           example: John
693         lastName:
694           type: string
695           example: James
696         email:
697           type: string
698           example: john@email.com
699         password:
700           type: string
701           example: '12345'
702         phone:
703           type: string
704           example: '12345'
705         userStatus:
706           type: integer
707           description: User Status
708           format: int32
709           example: 1
710       xml:
711         name: user
712     Tag:
713       type: object
714       properties:
715         id:
716           type: integer
717           format: int64
718         name:
719           type: string
720       xml:
721         name: tag
722     Pet:
723       required:
724         - name
725         - photoUrls
726       type: object
727       properties:
728         id:
729           type: integer
730           format: int64
731           example: 10
732         name:
733           type: string
734           example: doggie
735         category:
736           $ref: '#/components/schemas/Category'
737         photoUrls:
738           type: array
739           xml:
740             wrapped: true
741           items:
742             type: string
743             xml:
744               name: photoUrl
745         tags:
746           type: array
747           xml:
748             wrapped: true
749           items:
750             $ref: '#/components/schemas/Tag'
751         status:
752           type: string
753           description: pet status in the store
754           enum:
755             - available
756             - pending
757             - sold
758       xml:
759         name: pet
760     ApiResponse:
761       type: object
762       properties:
763         code:
764           type: integer
765           format: int32
766         type:
767           type: string
768         message:
769           type: string
770       xml:
771         name: '##default'
772   requestBodies:
773     Pet:
774       description: Pet object that needs to be added to the store
775       content:
776         application/json:
777           schema:
778             $ref: '#/components/schemas/Pet'
779         application/xml:
780           schema:
781             $ref: '#/components/schemas/Pet'
782     UserArray:
783       description: List of user object
784       content:
785         application/json:
786           schema:
787             type: array
788             items:
789               $ref: '#/components/schemas/User'
790   securitySchemes:
791     petstore_auth:
792       type: oauth2
793       flows:
794         implicit:
795           authorizationUrl: https://petstore3.swagger.io/oauth/authorize
796           scopes:
797             write:pets: modify pets in your account
798             read:pets: read your pets
799     api_key:
800       type: apiKey
801       name: api_key
802       in: header
Swagger写法参考

 

posted @ 2022-10-16 19:35  键盘命  阅读(34)  评论(0编辑  收藏  举报