auch wenn ich mir nicht sicher bin ob das Thema hier richtig aufgehoben ist, habe ich mich doch entschlossen einen Versuch zu wagen...
Falls es nicht ins Forum passt, bitte löschen.
Ein Programm stellt via lokalem webserver eine REST API zur Verfügung gegen die ich Daten austausche.
Die meisten API Aufrufe sind selbsterklärend. An der Übertragung von Dateien an den Server scheitere ich jedoch bislang.
Der Server loggt bei jeder Anfrage das der String Parameter "Name" fehlt und wirft einen 400er aus.
Das bedeutet, dass ich die Anfrage falsch erstelle.
-> "name" ist der einzige Pflichtparameter.
-> wohin mit den Binärdaten?
Hier fehlt mir offensichtlich das nötige Hintergrundwissen/ Verständnis für die API Beschreibung.
Vielleicht kann mir hier freundlicherweise jemand auf die Sprünge helfen.
Besten Dank für eure Hilfe!
Mein Versuch den Aufruf zu formulieren:
Code: Alles auswählen
def send_ifc_model():
ifcfilepath = "C:\\temp\\Testmodell.ifc"
with open(ifcfilepath, "rb") as f:
content = f.read()
headers = {'content-type': 'application/octet-stream'}
data = {'name' : content}
gpl_response = requests.post(f'{smc_baseurl}/models', headers=headers, data=data)
print(gpl_response.status_code)
Code: Alles auswählen
post:
tags:
0: "models-api-controller"
summary: "Open IFC Model"
operationId: "openIFCModel"
consumes:
0: "application/octet-stream"
produces:
0: "application/json"
parameters:
0:
name: "method"
in: "query"
required: false
type: "string"
enum:
0: "DELETE"
1: "GET"
2: "HEAD"
3: "OPTIONS"
4: "PATCH"
5: "POST"
6: "PUT"
7: "TRACE"
1:
name: "name"
in: "query"
description: "Name of the model"
required: true
type: "string"
2:
name: "type"
in: "query"
required: false
type: "string"
3
name: "url"
in: "query"
required: false
type: "string"
format: "uri"
responses:
200 {…}
201 {…}
401 {…}
403 {…}
404 {…}
500 {…}