Got OpenAPI schema with @OpenApiSchema.Paths.Count paths.
Server:
var currentIndex = OpenApiSchema.Servers.IndexOf(Server!);
@for (var index = 0; index < OpenApiSchema.Servers.Count; index++) {
var server = OpenApiSchema.Servers[index];
var serverOptionName = $"{server.Description} ({server.Url})";
}
Path:
@foreach (var method in OpenApiSchema.Paths.SelectMany(x => x.Value.GetAvailableMethods()).Distinct()) {
}
@if (!string.IsNullOrWhiteSpace(_methodKey)) {
@foreach (var path in OpenApiSchema.Paths.Where(x => x.Value.HasMethod(_methodKey!)).OrderBy(x => x.Key)) {
}
}
if (Operation != null) {
if (!string.IsNullOrWhiteSpace(Operation.Description)) {
@Operation.Description
}
}
@AllKnownPathParameters.Count known path parameters
@foreach (var (param, value) in AllKnownPathParameters) {
var _key = param;
// if (Operation?.Parameters?.Any(x => x.Name == param.Name && x.In == param.In) ?? false)
// continue;
}
@AllKnownQueryParameters.Count known query parameters
@foreach (var (param, value) in AllKnownQueryParameters) {
var _key = param;
// if (Operation?.Parameters?.Any(x => x.Name == param.Name && x.In == param.In) ?? false)
// continue;
}
@if (Operation != null) {
if (Operation.Parameters?.Any() ?? false) {
var pathParams = Operation.Parameters.Where(x => x.In == "path").ToList();
if (pathParams.Any()) {
Path parameters
foreach (var key in pathParams) {
Path parameter
}
}
var queryParams = Operation.Parameters.Except(pathParams).Where(x => x.In == "query").ToList();
if (queryParams.Any()) {
Query parameters
foreach (var key in queryParams) {
Query parameter
}
}
var otherParams = Operation.Parameters.Except(pathParams).Except(queryParams).ToList();
if (otherParams.Any()) {
Other parameters
foreach (var key in otherParams) {
Other parameter
}
}
}
if(Operation.RequestBody is not null) {
Request body @Operation.RequestBody.Content.ApplicationJson?.Schema.ToJson()
}
}
Execute