2016-03-21 3 views
1

Ich arbeite eine RESTFul-API und habe eine POST-Methode, die JSON- oder CSV-Body-Inhalt erlaubt.RESTFul: Wie sollte ein POST-Anfrageformat angegeben werden?

Was ist der beste Weg, damit umzugehen? Sollten URL-Routing/-Parameter verwendet werden (wie /resource/json oder /resource/?type=json) oder über Kopfzeilen (so würde die URL nur /resource lauten und ein Header würde json oder csv angeben)?

Antwort

1

Der richtige Weg gemäß W3C (https://www.w3.org/Protocols/rfc1341/4_Content-Type.html) besteht darin, den Inhaltstyp-Header zu verwenden, um den richtigen Typ anzugeben.

  • Für json wäre es Content-Type: application/json
  • Für einen Text CSV sei es Content-Type: text/csv

Vermeiden Sie url params wäre. Obwohl dies nicht "nicht erholsam" ist, ist es nicht die empfohlene Methode und riecht nach Amateurstunden. Schlimmer noch ist das Erstellen einer neuen "Ressource", die nur eine vorhandene Ressource darstellt.

+0

Dies fehlt der andere wichtige Teil: der 'Accept' Header. – Evert

+0

@Evert während ich empfehle, immer einen Accept-Header zu senden, wird nicht benötigt, um den Server zu informieren, wie der gesendete Körper verarbeitet wird - was der Umfang des OP war. – Ray

+0

Ich nehme es zurück. Ich habe die Frage falsch gelesen. =) – Evert

Verwandte Themen