Azure / Azure/azure-functions-openapi-extension

Validation, is it even working ?

Đang mở
#653 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
C#
Star
388
Fork
202
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

I've created a class, below, which has been decorated to set the type and the maximum length.

public class Test
{
[OpenApiProperty(Nullable = true, Description = "The unique message id of the request")]
[DataType(DataType.Text)]
[StringLength(10, MinimumLength = 1, ErrorMessage = "Eeeek")]
public string ExternalRef { get; set; }
}

In the progam.cs if I set the Openapi version to Version 2

var options = new OpenApiConfigurationOptions()
{
OpenApiVersion = OpenApiVersionType.V2,
}

The Swagger GUI will let me enter a string up to the Maximum length, and pass the call to to the azure function. :)
If I exceed the Maximum length the the Swagger GUI does nothing, no errors or change of colour, nothing. :(

If I update the OpenApiVersion to Version 3
Then every time, whether the string is shorter or longer than the maximum length the call will be passed to the azure function :(

Just for completeness my function is below

[Function("Function2")]
[OpenApiOperation(operationId: "Function2")]
[OpenApiRequestBody(contentType: "application/json", bodyType: typeof(Test), Description = "Test Object", Required = true)]
[OpenApiResponseWithBody(statusCode: HttpStatusCode.OK, contentType: "text/plain", bodyType: typeof(string), Description = "The OK response")]
public HttpResponseData Function2([HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequestData req)
{
_logger.LogInformation("C# HTTP trigger function processed a request.");

using var bodyReader = new StreamReader(req.Body);
var body = bodyReader.ReadToEndAsync().Result;

var data = JsonConvert.DeserializeObject(body);

var response = req.CreateResponse(HttpStatusCode.OK);
response.WriteStringAsync("Hello!!! " + data.ExternalRef);
return response;
}

This is a Isolated Azure Function V4 .Net 8

What I'd like to know:-
1, How do I set my openapi configuration so that the swagger GUI obeys the schema restrictions.
2, How do I set the openapi configuration so that the swagger GUI will indicate that something is wrong.

Thanks

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Reproduce the report using the OpenApiConfigurationOptions in Program.cs, the Test model's OpenApiProperty, DataType, and StringLength attributes, and the Function2 HTTP trigger. Compare the generated Swagger UI behavior for OpenAPI V2 and V3, then inspect the resulting schema and request handling. Done means the documented length restriction and invalid-input indication behave as expected in the supported configuration.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
azure, csharp, openapi
Lĩnh vực
api, backend
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
25/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.