swagger-api / swagger-api/swagger-codegen

[PYTHON] Handling multiple responses with codegen

Offen
#8,167 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Mustache
Sterne
17.8k
Forks
6k
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

I have different type of responses for different status code , consider the contents of swagger.json to be

{
	"swagger": "2.0",
	"info": {
		"title": "My Api",
		"description": "Api for Queue",
		"version": "v1"
	},
	"host": "localhost:8000",
	"schemes": ["http"],
	"basePath": "/api",
	"consumes": ["application/json"],
	"produces": ["application/json"],
	"securityDefinitions": {},
	"security": [{}],
	"paths": {
		"/v1/{name}/get_task": {
			"get": {
				"operationId": "v1_get_task_read",
				"description": "Get the first task from queue \n---",
				"parameters": [{
					"name": "priority",
					"in": "query",
					"required": false,
					"type": "string"
				}],
				"responses": {
					"200": {
						"description": "QueuedTask Object",
						"schema": {
							"$ref": "#/definitions/QueuedTask"
						}
					},
					"204": {
						"description": "null object response"
					}
				},
				"tags": ["v1"]
			},
			"parameters": [{
				"name": "name",
				"in": "path",
				"required": true,
				"type": "string"
			}]
		}
	},
	"definitions": {
		"QueuedTask": {
			"required": ["name"],
			"type": "object",
			"properties": {
				"id": {
					"title": "ID",
					"type": "integer",
					"readOnly": true
				},
				"name": {
					"title": "Name",
					"type": "string",
					"maxLength": 16
				}
			}
		}
	}
}
Swagger codegen version 2.3.1
java -jar swagger-codegen-cli-2.3.1.jar generate -l python -i swagger.json -o outs

swagger_client produced inside outs directory doesn't support None object for 204 response. It tries to deserialize the empty response into QueuedTask object and breaks.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Verwende die bereitgestellte swagger.json und führe den angegebenen Swagger Codegen 2.3.1 Python-Generierungsbefehl aus. Untersuche die Behandlung der 200- und 204-Antworten im generierten swagger_client und konzentriere dich dabei auf die leere 204-Antwort. Als erledigt gilt die Aufgabe, wenn der generierte Client die 204-Antwort akzeptiert, ohne zu versuchen, sie als QueuedTask zu deserialisieren, und dabei das Verhalten der 200-Antwort beibehält.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
api, tooling
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.