Azure API Gateway - поддержка свойства формата OpenAPI

У меня есть две конечные точки 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 ответ

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

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

/ Детали /9c850ade-c083-4f66-b03d-3fdecffb8bd0

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

Другие вопросы по тегам