1. das Wetter (JSON)
{
"openapi": "3.1.0",
"info": {
"title": "Get weather data",
"description": "Retrieves current weather data for a location.",
"version": "v1.0.0"
},
"servers": [
{
"url": "https://weather.example.com"
}
],
"paths": {
"/location": {
"get": {
"description": "Get temperature for a specific location",
"operationId": "GetCurrentWeather",
"parameters": [
{
"name": "location",
"in": "query",
"description": "The city and state to retrieve the weather for",
"required": true,
"schema": {
"type": "string"
}
}
],
"deprecated": false
}
}
},
"components": {
"schemas": {}
}
}
Bei diesem Code handelt es sich um eine JSON-Datei der OpenAPI-Spezifikation, die eine API zum Abrufen von Wetterdaten beschreibt, die es dem Benutzer ermöglicht, Wetterdaten für einen bestimmten Ort abzufragen.
"openapi": "3.1.0"
OpenAPI: Dies zeigt an, dass die verwendete Version der OpenAPI-Spezifikation 3.1.0 ist."info"
Dieser Abschnitt enthält grundlegende Informationen über die API, einschließlich Titel, Beschreibung und Version."servers"
Dieser Abschnitt listet die Server-URLs für die API auf."paths"
Dieser Abschnitt definiert die Pfade und Operationen der API. In diesem Beispiel gibt es eine GET-Operation mit einem Pfad von/location
die dazu dient, das Wetter für einen bestimmten Ort zu ermitteln. Dieser Vorgang erfordert eine Datei namenslocation
Der Abfrageparameter, der erforderlich ist, ist vom Typ String."components"
Dieser Abschnitt wird verwendet, um die in der API verwendeten Muster zu definieren, aber in diesem Beispiel ist er leer.
In der OpenAPI-Spezifikation ist dieparameters
ist ein Array, das die Eingabeparameter für API-Vorgänge definiert.parameters
definiert eine Datei namenslocation
Der Abfrageparameter, der erforderlich ist, ist vom Typ String. Jeder Parameter ist ein Objekt, das die folgenden Eigenschaften enthält:
"name"
: Der Name des Parameters."in"
Ort: Der Ort des Parameters. Dies kann sein"query"
,"header"
,"path"
vielleicht"cookie"
."description"
Beschreibung des Parameters."required"
: Wenn fürtrue
Dieser Parameter ist erforderlich, wenn die"schema"
Datentyp: Der Datentyp des Parameters.
Die 4 Fälle, die sich auf die Position der Parameter beziehen, sind im Folgenden dargestellt:
- Header-Parameter, um den API-Schlüssel im Request-Header zu übergeben.
- path-Parameter, um die ID des Objekts anzugeben, das im URL-Pfad abgerufen werden soll.
- Der Cookie-Parameter, der verwendet wird, um die Sitzungs-ID des Benutzers in einem Cookie zu übergeben.
- Der Abfrageparameter, der an die URL angehängt wird, dient in der Regel dazu, Informationen zu filtern.
Erstellen Sie eine benutzerdefinierte Werkzeugschnittstelle:
Schnittstelle des Testwerkzeugs:
2. die Tierhandlung (YAML)
# Taken from https://github.com/OAI/OpenAPI-Specification/blob/main/examples/v3.0/petstore.yaml
openapi: "3.0.0"
info:
version: 1.0.0
title: Swagger Petstore
license:
name: MIT
servers:
- url: https://petstore.swagger.io/v1
paths:
/pets:
get:
summary: List all pets
operationId: listPets
tags:
- pets
parameters:
- name: limit
in: query
description: How many items to return at one time (max 100)
required: false
schema:
type: integer
maximum: 100
format: int32
responses:
'200':
description: A paged array of pets
headers:
x-next:
description: A link to the next page of responses
schema:
type: string
content:
application/json:
schema:
$ref: "#/components/schemas/Pets"
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
post:
summary: Create a pet
operationId: createPets
tags:
- pets
responses:
'201':
description: Null response
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/pets/{petId}:
get:
summary: Info for a specific pet
operationId: showPetById
tags:
- pets
parameters:
- name: petId
in: path
required: true
description: The id of the pet to retrieve
schema:
type: string
responses:
'200':
description: Expected response to a valid request
content:
application/json:
schema:
$ref: "#/components/schemas/Pet"
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
components:
schemas:
Pet:
type: object
required:
- id
- name
properties:
id:
type: integer
format: int64
name:
type: string
tag:
type: string
Pets:
type: array
maxItems: 100
items:
$ref: "#/components/schemas/Pet"
Error:
type: object
required:
- code
- message
properties:
code:
type: integer
format: int32
message:
type: string
pet.yaml
ist eine OpenAPI-Spezifikationsdatei, die die Schnittstelle zu einer API namens "Swagger Petstore" beschreibt und definiert. Diese Datei verwendet das YAML-Format, einen Standard für die Serialisierung von menschenlesbaren Daten zum Schreiben von Konfigurationsdateien. Diese Datei bietet eine klare Definition der API-Schnittstelle für Entwickler, damit diese wissen, wie sie mit der "Swagger Petstore"-API interagieren können. Die wichtigsten Teile der Datei sind:
openapi
Version: Dieses Feld gibt die Version der verwendeten OpenAPI-Spezifikation an, in diesem Fall "3.0.0".info
Dieser Abschnitt enthält grundlegende Informationen über die API, einschließlich Version, Titel und Lizenz.servers
Dieser Abschnitt definiert die Server-URL für die API.paths
Dieser Abschnitt definiert alle Pfade und Operationen der API. Zum Beispiel./pets
Der Pfad hat zwei Operationen:get
im Gesang antwortenpost
.get
wird verwendet, um alle Haustiere aufzulisten.post
Vorgänge werden verwendet, um ein neues Haustier zu erstellen. Jeder Vorgang hat seine eigenen Parameter, Antworten und andere Details.components
Dieser Abschnitt definiert wiederverwendbare Schemata, die in der Datenbank verwendet werden können.paths
In dem Abschnitt zitiert. Zum Beispiel.Pet
undPets
im Gesang antwortenError
Modus.
Konvertieren Sie die obige YAML-Datei in das JSON-Format:
{
"openapi": "3.0.0",
"info": {
"version": "1.0.0",
"title": "Swagger Petstore",
"license": {
"name": "MIT"
}
},
"servers": [
{
"url": "https://petstore.swagger.io/v1"
}
],
"paths": {
"/pets": {
"get": {
"summary": "List all pets",
"operationId": "listPets",
"tags": ["pets"],
"parameters": [
{
"name": "limit",
"in": "query",
"description": "How many items to return at one time (max 100)",
"required": false,
"schema": {
"type": "integer",
"maximum": 100,
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "A paged array of pets",
"headers": {
"x-next": {
"description": "A link to the next page of responses",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pets"
}
}
}
},
"default": {
"description": "unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"post": {
"summary": "Create a pet",
"operationId": "createPets",
"tags": ["pets"],
"responses": {
"201": {
"description": "Null response"
},
"default": {
"description": "unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/pets/{petId}": {
"get": {
"summary": "Info for a specific pet",
"operationId": "showPetById",
"tags": ["pets"],
"parameters": [
{
"name": "petId",
"in": "path",
"required": true,
"description": "The id of the pet to retrieve",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Expected response to a valid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pet"
}
}
}
},
"default": {
"description": "unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"Pet": {
"type": "object",
"required": ["id", "name"],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"tag": {
"type": "string"
}
}
},
"Pets": {
"type": "array",
"maxItems": 100,
"items": {
"$ref": "#/components/schemas/Pet"
}
},
"Error": {
"type": "object",
"required": ["code", "message"],
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
}
}
}
}
}
}
3. leere Vorlage
{
"openapi": "3.1.0",
"info": {
"title": "Untitled",
"description": "Your OpenAPI specification",
"version": "v1.0.0"
},
"servers": [
{
"url": ""
}
],
"paths": {},
"components": {
"schemas": {}
}
}
Hinweis: Es scheint, dass das JSON-Format intuitiver ist.
Tutorial zur strukturierten Ausgabe:Wie verwendet man ein jsonarray-Objekt in Dify?