Ich erstelle einen Webhook-Endpunkt für verschiedene Git-Server. Die Webhook-URL wird auf dem Git-Server konfiguriert und wird verwendet, um eine POST-Anfrage mit einem Body zu senden, der Metadaten zu einem Ereignis enthält (wie die Informationen zu einem Commit, nachdem ein Commit durchgeführt wurde). Der Inhalt der POST-Anfrage unterscheidet sich von einem Server zu einem anderen: Die Attribute und die Werte sind git-Provider-spezifisch.REST: Post-Endpunkt mit URL-Abfrageparameter und Body-Inhalt
Ich möchte die gleiche Endpunkt-URL verwenden, wenn es mit einem Abfrageparameter möglich ist, zu unterscheiden, mit welchem git-Provider ich es zu tun habe. Mein Endpunkt wäre so etwas wie diese:
/repositories/commits?type={git_provider}
Ein Beispiel für die Urls in Gitlab oder Atlassian Stash konfiguriert wird, sind:
/repositories/commits?type=stash
/repositories/commits?type=gitlabs
Das Problem ist, dass der Inhalt des Körpers POST-Anforderung wird unterschiedlich je nach Wert des Typs. Ist es so machbar? oder sollte ich unterschiedliche Endpunkte für jeden Typ erstellen, in diesem Fall habe ich mehrere Endpunkte, die je nach Git-Typ den Körper eines anderen Beitrags verarbeiten.
/stash/repositories/commits
/gitlabs/repositories/commits
einen einzelnen Endpunkt mit einem Abfrageparameter
Pro verwenden:
- Respektierung die gleiche Hierarchie in anderen Endpunkt verwendet
Nachteile:
einen einzelnen Endpunkt mit einem Abfrageparameter verwenden
Pro:
- Jeder Endpunkt wird einfach sein und und wird einen festen Beitrag Körper
werden Verarbeitung Con:
- Die Hierarchie der neuen Endpunkte entspricht nicht der Hierarchie der vorhandenen Endpunkte.
Diese Frage ist in erster Linie meinungsbezogen. Alle URL-Vorschläge in der Frage würden funktionieren - was getan werden sollte, hängt von persönlichen Vorlieben ab oder passt es in ein bestehendes Schema an, das in der Frage nicht erwähnt wird. – Sven
Ich bearbeite die Frage, um weitere Details hinzuzufügen. –
Wenn ich die Bearbeitung lese, würde ich sagen, dass dies meinungsbasiert ist. Sie haben das grundlegende Problem, verschiedene POST-Körper an verschiedene URLs zu senden. Es spielt keine Rolle, ob der Unterschied in der URL vor oder nach dem '?' Liegt - es ist anders. Wer sollte sich in deiner Frage darum kümmern? Wer wäre von dieser Entscheidung betroffen? – Sven