Consider returning reference type from `AddComponent` API
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 45/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- csharp
- Domínio
- api, backend-api-design
Direção de pesquisa
Comece localizando a implementação da API AddComponent e qualquer cobertura existente para o registro de componentes de documento. Compare seu resultado booleano atual com o exemplo de AddOperationTransformer e, em seguida, verifique se a referência retornada representa o schema inserido, enquanto o comportamento de registro existente permanece intacto.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
The AddComponent API currently returns a boolean that indicates if the addition of the component to the document registry succeeded.
It would be nice if the API returned a reference to the item that was just constructed. In an M.A.OpenAPI transformer, I currently need to write:
options.AddOperationTransformer((operation, context, cancellationToken) =>
{
var schemaService = context.ApplicationServices.GetRequiredKeyedService<IOpenApiSchemaService>(context.DocumentName);
if (context.Description.RelativePath == "error")
{
var errorSchema = schemaService.GetOrCreateSchema(typeof(ProblemDetails));
context.Document.AddComponent("Error", errorSchema);
operation.Responses["500"] = new OpenApiResponse
{
Description = "Error",
Content =
{
["application/problem+json"] = new OpenApiMediaType
{
Schema = new OpenApiSchemaReference("Error", context.Document),
},
},
};
}
return Task.CompletedTask;
});
but would like to write:
options.AddOperationTransformer((operation, context, cancellationToken) =>
{
var schemaService = context.ApplicationServices.GetRequiredKeyedService<IOpenApiSchemaService>(context.DocumentName);
if (context.Description.RelativePath == "error")
{
var errorSchema = schemaService.GetOrCreateSchema(typeof(ProblemDetails));
var insertedSchema = context.Document.AddComponent("Error", errorSchema);
operation.Responses["500"] = new OpenApiResponse
{
Description = "Error",
Content =
{
["application/problem+json"] = new OpenApiMediaType
{
Schema = insertedSchema,
},
},
};
}
return Task.CompletedTask;
});
cc: @baywet I couldn't see if an API that did this existed already and figured I'd add the proposal.
- Linguagem predominante
- C#
- Estrelas
- 1.6k
- Forks
- 286
- Merge médio
- 6h 38min
- PRs com merge (30d)
- 35
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de microsoft/OpenAPI.NET
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
microsoft/OpenAPI.NET#2798 ·
-
microsoft/OpenAPI.NET#3056 · 1 comentário · 1 reação · 2 responsáveis ·
-
type:breaking-change
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 52/100
microsoft/OpenAPI.NET#3014 · 2 comentários ·
-
Implement equality (`IEquatable<T>` and override object.Equals/GetHashCode) for object models Abertahelp wanted
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
microsoft/OpenAPI.NET#2989 · 3 comentários ·
-
help wanted type:feature
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
microsoft/OpenAPI.NET#2967 · 18 comentários · 1 reação ·
Todas as issues de microsoft/OpenAPI.NET
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
nightscout/nocturne#1425 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
RayWangQvQ/BiliBiliToolPro#1137 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100