1. clima (JSON)
{
"openapi": "3.1.0",
"info": {
"title": "Get weather data", "description": "Recupera os dados meteorológicos atuais de um local.
"description": "Recupera os dados meteorológicos atuais de um local.", "version": "v1.0.0", "description": "Recupera os dados meteorológicos atuais de um local.
"version": "v1.0.0"
}, "servers": ["servers" : ["Recupera os dados meteorológicos atuais de um local.
"servidores": [
{
"url": "https://weather.example.com"
}
],
"paths" (caminhos): {
"/location": {
"get": {
"operationId": "GetCurrentWeather", "parameters": [
"parameters": [
{
"name": "location", "in": "query", "parameters": [ {
"in": "query", "description": "The city and
"schema": {
"type": "string"
}
}
], "deprecated": false
"deprecated": false
}
}
},
"components": {
"schemas": {}
}
}
Esse código é um arquivo JSON da especificação OpenAPI que descreve uma API para obter dados meteorológicos. Em resumo, a API permite que o usuário consulte os dados meteorológicos de um local específico.
"openapi": "3.1.0"
Versão da especificação OpenAPI: Indica que a versão da especificação OpenAPI usada é a 3.1.0."info"
API: Esta seção fornece informações básicas sobre a API, incluindo título, descrição e versão."servidores"
URLs do servidor: Esta seção lista os URLs do servidor para a API."caminhos"
API: Esta seção define os caminhos e as operações da API. Neste exemplo, há uma operação GET com um caminho de/localização
que é usado para obter o clima em um local específico. Essa operação requer um arquivo chamadolocalização
O parâmetro de consulta, que é obrigatório, é do tipo string."componentes"
: Esta seção é usada para definir os padrões usados na API, mas, neste exemplo, ela está vazia.
Na especificação da OpenAPI, oparâmetros
é uma matriz que define os parâmetros de entrada para operações de API.parâmetros
define um arquivo chamadolocalização
O parâmetro de consulta, que é obrigatório, é do tipo string. Cada parâmetro é um objeto que contém as seguintes propriedades:
"name" (nome)
Nome do parâmetro: O nome do parâmetro."em"
Localização do parâmetro: A localização do parâmetro. Pode ser"query" (consulta)
,"cabeçalho"
,"caminho"
talvez"cookie"
."description" (descrição)
Descrição do parâmetro: Descrição do parâmetro."obrigatório"
: Se paraverdadeiro
Esse parâmetro é necessário se o"schema"
Tipo de dados: O tipo de dados do parâmetro.
Com foco na posição dos parâmetros, os quatro casos são mostrados abaixo:
- para passar a chave de API no cabeçalho da solicitação.
- path para especificar a ID do objeto a ser recuperado no caminho do URL.
- O parâmetro cookie, usado para passar o ID da sessão do usuário em um cookie.
- O parâmetro de consulta, anexado ao URL, geralmente é usado para fornecer filtragem de informações.
Criar uma interface de ferramenta personalizada:
Interface da ferramenta de teste:
2. loja de animais de estimação (YAML)
# Extraído de https://github.com/OAI/OpenAPI-Specification/blob/main/examples/v3.0/petstore.yaml
openapi: "3.0.0"
info.
versão: 1.0.0
título: Swagger Petstore
licença: nome: MIT
nome: MIT
servidores.
- url: https://petstore.swagger.io/v1
caminhos.
/pets.
get.
resumo: Listar todos os animais de estimação
operationId: listPets
tags: pets
- animais de estimação
parâmetros: name: limit
- name: limit
in: query
description: Quantos itens devem ser retornados de uma só vez (máx. 100)
obrigatório: false
schema: name: limit in: query description: quantos itens devem ser retornados de uma só vez (máx. 100)
tipo: integer
máximo: 100
formato: int32
respostas.
'200'.
descrição: Uma matriz paginada de animais de estimação
descrição: Uma matriz paginada de animais de estimação
x-next.
Descrição: Um link para a próxima página de respostas
schema: x-next: description: Um link para a próxima página de respostas
x-next: description: Um link para a próxima página de respostas schema: type: string
conteúdo: application/json.
application/json.
schema: $ref: "#/components/schemas/Pets
$ref: "#/components/schemas/Pets"
padrão: $ref: "#/components/schemas/Pets
descrição: erro inesperado
descrição: erro inesperado
#/components/schemas/Pets" default: description: unexpected error content: application/json.
schema.
$ref: "#/components/schemas/Error"
post.
summary: Criar um animal de estimação
operationId: createPets
tags: pets
- animais de estimação
respostas.
'201'.
descrição: resposta nula
padrão: '201': descrição: resposta nula
descrição: erro inesperado
padrão: descrição: erro inesperado
application/json.
schema.
$ref: "#/components/schemas/Error"
/pets/{petId}.
get.
summary: Informações sobre um animal de estimação específico
operationId: showPetById
tags: pets/{petId}: get: summary: Informações sobre um animal de estimação específico
- animais de estimação
parâmetros: name: petId
- nome: petId
in: path
obrigatório: true
descrição: o ID do animal de estimação a ser recuperado
schema: petId in: path required: true description: O ID do animal de estimação a ser recuperado
type: string
respostas.
'200'.
descrição: resposta esperada para uma solicitação válida
descrição: resposta esperada para uma solicitação válida
application/json: '200': descrição: resposta esperada para um conteúdo de solicitação válido: application/json.
schema.
$ref: "#/components/schemas/Pet"
padrão: $ref: "#/components/schemas/Pet
descrição: erro inesperado
descrição: erro inesperado
#/components/schemas/Pet" default: description: unexpected error content: application/json.
schema.
$ref: "#/components/schemas/Error"
schema: $ref: "#/components/schemas/Error
$ref: "#/components/schemas/Error" componentes.
Pet.
schema: schemas: Pet.
obrigatório: id
- id
- nome
propriedades.
id: type: integer
tipo: integer
formato: int64
name: id: type: integer format: int64
tipo: string
tag.
type: string
Pets.
tipo: array
maxItems: 100
itens: $ref: "#/components/schemas/Pet
$ref: "#/components/schemas/Pet"
Erro: type: object
$ref: "#/components/schemas/Pet" Erro.
obrigatório: código
- #/components/schemas/Pet" Erro: tipo: objeto obrigatório.
- mensagem
type: object required: code message
tipo: integer
tipo: integer
formato: int32
message: type: string
tipo: string
pet.yaml
é um arquivo de especificação OpenAPI que descreve e define a interface para uma API chamada "Swagger Petstore". Esse arquivo usa o formato YAML, que é um padrão de serialização de dados legível por humanos para gravar arquivos de configuração. Esse arquivo fornece uma definição clara da interface da API para que os desenvolvedores saibam como interagir com a API "Swagger Petstore". As partes principais do arquivo incluem:
openapi
Versão da especificação OpenAPI: Este campo especifica a versão da especificação OpenAPI usada, neste caso "3.0.0".informações
Esta seção fornece informações básicas sobre a API, incluindo versão, título e licença.servidores
URL do servidor: Esta seção define o URL do servidor para a API.caminhos
API: Esta seção define todos os caminhos e operações da API. Por exemplo./animais de estimação
O caminho tem duas operações:obter
responder cantandopostagem
.obter
é usada para listar todos os animais de estimação.postagem
As operações são usadas para criar um novo animal de estimação. Cada operação tem seus próprios parâmetros, respostas e outros detalhes.componentes
Esta seção define esquemas reutilizáveis que podem ser usados nocaminhos
Citado na seção. Por exemplo.Animal de estimação
eAnimais de estimação
responder cantandoerro
Modo.
Converta o arquivo YAML acima para o formato JSON:
{
"openapi": "3.0.0",
"info": {
"versão": "1.0.0", "título": "Swagger Petstore", {
"licença": {
"name": "MIT"
}
},
"servers": [
{
"url": "https://petstore.swagger.io/v1"
}
],
"paths" (caminhos): {
"/pets": {
"get": {
"summary": "list all pets", "operationId": "listPets",
"operationId": "listPets",
"parameters": [
{
"name": "limit", "in": "query", "tags": ["pets"], "parameters": [ {
"in": "query", "description": "Quantos itens devem ser retornados de uma só vez
"description": "Quantos itens devem ser retornados de uma só vez (máx. 100)", "required": false, "tags": [ {
"schema": {
"type": "integer", "maximum": 100, "required": false, "schema": {
"format": "int32"
}
}
], "responses": {
"responses": {
"200": {
"description": "Uma matriz paginada de animais de estimação", "headers": {
"headers": {
"x-next": {
"description": "Um link para a próxima página de respostas", "schema": { "x-next": { "x-next": {
"schema": {
"type": "string"
}
}
}, "content": { "link para a próxima página de respostas", "schema": { "type": "string" }
"content" (conteúdo): {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pets"
}
}
}
},
"default": {
"description": "unexpected error" (erro inesperado), "content" (conteúdo): {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"post": {
"summary" (resumo): "Create a pet" (criar um animal de estimação),
"operationId": "createPets",
"tags": ["pets"], "responses": {
"responses": {
"201": {
"description": "Null response" (Resposta nula)
},
"default": {
"description": "unexpected error" (erro inesperado), "content" (conteúdo): {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},.
"/pets/{petId}": {
"get": {
"operationId": "showPetById",
"tags": ["pets"], "parâmetros": ["pets"], "operationId": "showPetById",
"parameters": [
{
"name": "petId", "in": "path", "tags": ["pets"], "parameters": [ {
"in": "path", "required": true, [ { "name": "petId",
"required": true, "description": "O ID do animal de estimação a ser recuperado
"description": "O ID do animal de estimação a ser recuperado", "schema": {
"schema": {
"type": "string"
}
}
], "responses": { "responses": { "type": "string" } }
"responses": {
"200": {
"description": "Resposta esperada para uma solicitação válida", "content": { "200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pet"
}
}
}
},
"default": {
"description": "unexpected error" (erro inesperado), "content" (conteúdo): {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"Pet": {
"type": "object", "required": ["id", "name"], {
"required": ["id", "name"], "properties": { "properties": { "id", "name", "name", "name
"properties": {
"id": {
"type": "integer", "format": "int64".
"format": "int64"
},
"name": {
"type": "string"
},
"tag": {
"type": "string"
}
}
},
"Pets": {
"type": "array", "maxItems": 100, "array
"maxItems": 100, "items": { "type": "array",
"itens": {
"$ref": "#/components/schemas/Pet"
}
},
"Error": {
"properties": {
"code": {
"type": "integer", "format": "int".
"format": "int32"
},
"message" (mensagem): {
"type": "string"
}
}
}
}
}
}
3. modelo em branco
{
"openapi": "3.1.0",
"info": {
"title": "Untitled", "description": "Sua especificação OpenAPI", { "openapi": "3.0", "info": {
"description": "Sua especificação OpenAPI", "version": "v1.0", "vpi": "vpi": "vpi": "vpi": "vpi": "vpi": "vpi": "vpi".
"version": "v1.0.0"
}, "servers": [
"servidores": [
{
"url": ""
}
],
"paths": {},
"components": {
"schemas": {}
}
}
Observação: Parece que o formato JSON é mais intuitivo.
Tutorial de saída estruturada:Como usar o objeto jsonarray no Dify?