Azure API Gateway - поддержка свойства формата OpenAPI - PullRequest
0 голосов
/ 31 октября 2018

У меня есть две конечные точки API

[HttpGet("/items/{id:guid}")]
public IActionResult GetItemById(Guid id)
{

[HttpGet("/items/{code}")]
public IActionResult GetItemByCode(string code)
{

Swagger, похоже, справляется с теми без проблем. Я посмотрел в jap-файл OpenAPI и заметил, что конечная точка guid имеет свойство format в объекте параметра, установленном в «uuid». Конечная точка кода вообще не имеет этого свойства. Параметр типа обоих имеет значение «строка», поэтому я считаю, что именно так они и различаются. Я хотел импортировать этот json-файл в Azure API Gateway, но это не удалось, поскольку он видит их обоих как одну и ту же подпись. Означает ли это, что Azure не поддерживает свойство format объекта параметра? Это часть спецификации v3? Есть ли какие-либо планы по поддержке в Azure в ближайшем будущем? Пытался найти какую-либо информацию об этом, но не смог найти никаких деталей.

1 Ответ

0 голосов
/ 05 ноября 2018

Да, с точки зрения APIM, это одно и то же. Я действительно не уверен, как спецификация OpenAPI справится с ними, уверен, что вы можете написать такой файл спецификации, но что бы это значило, неясно. Я не мог найти слова об этом OpenAPIv2.

Такие спецификации проблематичны и во время выполнения. Нужно иметь достаточно полный порядок приоритетов для типов параметров, чтобы он как-то работал, и я чувствую, что это может не удовлетворить всех. Представьте, что сделан звонок:

/ пункты / 9c850ade-c083-4f66-b03d-3fdecffb8bd0

должно ли оно совпадать с id: guid или code: string? Это не сразу понятно. Так что лучше избегать таких двусмысленностей.

...