我认为我的问题的标题不是很明确,所以我将在这里尝试更好地解释。
我目前正在用OpenAPI 3规范编写我的API文档,但是我有一个小问题。
我创建了两个组件“ Units”和“ MeasuresTypes”。我的API中的一种方法是检索单位,另一种方法是检索测量类型。第一个允许返回组件“ Units”,第二个允许返回“ MeasuresTypes”,其中还包含组件“ Units”。
我的问题是我找不到如何在“ measurestypes”路径的“ MeasuresTypes”中集成“ Units”组件。
这是我的json文件的摘录:
{
"openapi" : "3.0.0",
"servers" : [ {
"url" : "https://example.com/api/"
} ],
"info" : {
"version" : "0.0.3",
"title" : "API PassCare Bêta",
"description" : "API PassCare en version bêta (Dernière mise à jour le 09/07/2018)"
},
"paths" : {
"/measuresunits?accesstoken={accesstoken}" : {
"get" : {
"summary" : "Récupération de la liste des unités de mesures (hors posologie)",
"description" : "Cette méthode permet de récupérer les unités de mesures qui seront utilisées ",
"parameters" : [ {
"name" : "accesstoken",
"in" : "path",
"required" : true,
"description" : "Token d'accès obtenu via 'Obtention du token d'accès'",
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"200" : {
"description" : "Tableau JSON contenant les unités",
"content" : {
"application/json" : {
"schema" : {
"type" : "array",
"items" : {
"type" : "object",
"$ref" : "#/components/schemas/Units"
}
}
}
}
}
}
}
},
"/measurestypes?accesstoken={accesstoken}" : {
"get" : {
"summary" : "Récupération de la liste des types de mesures",
"description" : "Cette méthode permet de récupérer les types de mesures qui peuvent être utilisées dans l'API",
"parameters" : [ {
"name" : "accesstoken",
"in" : "path",
"required" : true,
"description" : "Token d'accès obtenu via 'Obtention du token d'accès'",
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"200" : {
"description" : "Tableau JSON contenant les types de mesures",
"content" : {
"application/json" : {
"schema" : {
"type" : "array",
"items" : {
"type" : "object",
"$ref" : "#/components/schemas/MeasuresTypes",
//include Units here
}
}
}
}
}
}
}
}
},
"components" : {
"schemas" : {
"Patients": {
"type" : "object",
"properties" : {
"firstname" : {
"type" : "string",
"description" : "Prénom",
"example" : "Jean"
},
"lastname" : {
"type" : "string",
"description" : "Nom",
"example" : "Dupont"
},
}
},
"Units": {
"type" : "object",
"properties" : {
"name" : {
"type" : "string",
"description" : "Unité",
"example" : "Cigarette"
},
"plural_name" : {
"type" : "string",
"description" : "Unité au pluriel",
"example" : "Cigarettes"
},
"api_slug" : {
"type" : "string",
"description" : "Slug",
"example" : "cigarette"
}
}
},
"MeasuresTypes": {
"type" : "object",
"properties" : {
"name" : {
"type" : "string",
"description" : "Nom du type de mesure",
"example" : "Taille"
},
"slug" : {
"type" : "string",
"description" : "Slug",
"example" : "height"
},
"round_number" : {
"type" : "int",
"description" : "Nombre de chiffres conservés après la virgule",
"example" : "0"
}
}
}
}
}
}
这是预期的响应:
[
{
"name": "Taille",
"slug": "height",
"round_number": "0",
"unit": {
"name": "cm",
"plural_name": "cm",
"api_slug": "cm"
}
}
]
有人可以帮助我找到一个好的解决方案吗?
谢谢!
答案 0 :(得分:0)
在您的情况下,您应该使用allOf
keyword。尚未测试:
> using Microsoft.AspNetCore.Mvc; using Github.Models; using System;
> using System.Collections.Generic; using System.Linq; using
> System.Threading.Tasks; using Microsoft.AspNetCore.Mvc.Rendering;
> using Microsoft.EntityFrameworkCore;