2014-11-12 8 views
7

Ich verwende Spring, um einen RESTful-Service zu erstellen, und ich bin neugierig auf die Syntax für Medientypen.Was ist der richtige Medientyp für HAL + JSON?

Aus meiner Sicht ist der allgemeine Medientyp für HAL + JSON application/hal+json. Aus meiner Sicht ist ein herstellerspezifischer benutzerdefinierter Medientyp, der HAL + JSON unterstützt, etwas wie application/vnd.api.entity.hal+json. Allerdings habe ich auch application/vnd.api.entity+hal+json gesehen. Welches ist korrekt?

Auch was wäre der richtige Wildcard-Typ für HAL + JSON? Wäre es application/*.hal+json oder application/*+hal+json. Links zu allen relevanten RFCs sind willkommen. Vielen Dank!

+0

was meinst du mit "Wild-Card-Typ"? –

+0

@JulianReschke Ein Wildcard-Typ ist so etwas wie 'application/* + json' –

+0

Ich habe das; aber wo willst du es benutzen? Sag nicht in "Akzeptiere:". –

Antwort

6
application/vnd.api.entity+json 

application/vnd.api.entity.hal+json würde nur Sinn machen, wenn Sie planen, auch für HAL ohne Unterstützung Ihre Daten zu liefern. Der Kunde muss die Struktur des Inhalts sowieso kennen und HAL ist Teil davon.

application/vnd.api.entity+hal+json ist einfach falsch. Die standard besagt, dass nur registrierte Suffixe verwendet werden sollten. Sie bezeichnet sie auch als "Strukturierte Syntax Suffixe". Es ist also klar, dass es darum geht, Daten nicht über ihre Bedeutung zu lesen. Nur ein Suffix ist erlaubt und mehr würde keinen Sinn ergeben.

Denken Sie darüber nach, wie application/semantic+syntax oder application/what's in it + how to read it.

+0

Das macht Sinn und das war die Richtung, in die ich auch ging. 'Anwendung/blah + hal + json' ergab für mich keinen Sinn. Auch, ja, in der API haben meine Entitäten die Möglichkeit, HAL mit einzubeziehen. –

+0

Irgendwelche Hilfe hier bitte? https://stackoverflow.com/questions/44703189/hal-is-it-a-violation-to-the-hal-format-standard-if-links-are-in-the-main-body/44715660?noredirect= 1 # Kommentar76415176_44715660 Danke –