[Bug]: Kiota generation is weird because of the OpenAPI scheme
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- csharp, openapi
- Ambito
- api, backend-api-design
Direzione di ricerca
Riproduci il problema con lo schema di risposta OpenAPI fornito e Kiota 1.6.77, quindi traccia i tipi di risposta C# generati e il codice sorgente che crea questa operazione OpenAPI. Confronta gli overload generati con lo schema di collection esplicito proposto; il lavoro è completato quando la risposta è rappresentata dal modello tipizzato previsto senza il metodo duplicato obsoleto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What happened?
For a simple orders table, I get this path in the OpenAPI document
"/Order": {
"get": {
"tags": [
"Order"
],
"description": "Returns entities.",
"parameters": [
{
"name": "X-MS-API-ROLE",
"in": "header",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"in": "header",
"schema": {
"type": "string"
}
},
{
"name": "$select",
"in": "query",
"description": "A comma separated list of fields to return in the response.",
"schema": {
"type": "string"
}
},
{
"name": "$filter",
"in": "query",
"description": "An OData expression (an expression that returns a boolean value) using the entity's fields to retrieve a subset of the results.",
"schema": {
"type": "string"
}
},
{
"name": "$orderby",
"in": "query",
"description": "Uses a comma-separated list of expressions to sort response items. Add 'desc' for descending order, otherwise it's ascending by default.",
"schema": {
"type": "string"
}
},
{
"name": "$first",
"in": "query",
"description": "An integer value that specifies the number of items to return. Default is 100.",
"schema": {
"type": "integer"
}
},
{
"name": "$after",
"in": "query",
"description": "An opaque string that specifies the cursor position after which results should be returned.",
"schema": {
"type": "string"
}
}
],
"responses": {
"400": {
"description": "BadRequest"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "NotFound"
},
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"value": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Order"
}
},
"nextLink": {
"type": "string"
}
}
}
}
}
}
}
},
"post": {
"tags": [
"Order"
],
"description": "Create entity.",
"parameters": [
{
"name": "X-MS-API-ROLE",
"in": "header",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"in": "header",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Order_NoAutoPK"
}
}
},
"required": true
},
"responses": {
"400": {
"description": "BadRequest"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "NotFound"
},
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"value": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Order"
}
}
}
}
}
}
},
"409": {
"description": "Conflict"
}
}
}
}
Then I run Kiota in the document and I get the following
[Obsolete("This method is obsolete. Use GetAsOrderGetResponseAsync instead.")]
public async Task<global::TestSimple.Client.Order.OrderResponse?> GetAsync(Action<RequestConfiguration<global::TestSimple.Client.Order.OrderRequestBuilder.OrderRequestBuilderGetQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default) { /*stuff*/}
public async Task<global::TestSimple.Client.Order.OrderGetResponse?> GetAsOrderGetResponseAsync(Action<RequestConfiguration<global::TestSimple.Client.Order.OrderRequestBuilder.OrderRequestBuilderGetQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default) { /* stuff */}
From what I understood, this is a problem on the generated OpenAPI Specification that is not enough typed (the object should be an explicit object like "OrderCollection"
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"value": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Order"
}
},
"nextLink": {
"type": "string"
}
}
}
}
}
}
Version
1.6.77
What database are you using?
Azure SQL
What hosting model are you using?
Custom Docker host
Which API approach are you accessing DAB through?
REST
Relevant log output
Code of Conduct
- I agree to follow this project's Code of Conduct
- Lingua principale
- C#
- Stelle
- 1.5k
- Fork
- 371
- Merge medio
- 9g 2h
- PR unite (30g)
- 10
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Azure/data-api-builder
-
pgsql
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Azure/data-api-builder#3598 ·
I maintainer di solito rispondono entro 1 giorno
-
2.x cli mcp-server
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Azure/data-api-builder#3576 ·
I maintainer di solito rispondono entro 1 giorno
-
2.x health-endpoint
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Azure/data-api-builder#3570 ·
I maintainer di solito rispondono entro 1 giorno
-
2.x telemetry
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Azure/data-api-builder#3564 ·
I maintainer di solito rispondono entro 1 giorno
-
2.x telemetry
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
Azure/data-api-builder#3562 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Azure/data-api-builder
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
fluentassertions/fluentassertions#3353 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 78/100
unoplatform/uno#24769 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
AvaloniaUI/Avalonia#22323 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
microsoft/onnxruntime-genai#2633 ·
I maintainer di solito rispondono entro 1 giorno