Ylläpidän vanhaa .aspx -sivua, jossa kaikki tiedot sivun vaatima sisällön näyttäminen välitetään GET -pyynnön URL-osoitteeseen osana kyselymerkkijonoa. Tuloksena on, että kun lisäämme ominaisuuksia, URL-osoite kasvaa jatkuvasti.

Aion siirtää kaikki parametrit kyselymerkkijonosta GET -pyynnön runkoon.

Onko se hyvä suunnittelupäätös ja mikä on rungon käyttötapa GET -pyynnössä?

kommentit

  • miksi et yksinkertaisesti käytä POST -pyyntöä?
  • Koska en luo tai päivitä mitään. Haen tietoja vain palvelimelta.
  • Se ' odotti, että GET-pyynnöt ovat idempotentteja: pyytämällä samaa URL-osoitetta useita kertoja saat aina vastaavan tuloksen. Tämä esim. mahdollistaa välimuistin (jota jotkut selaimet ja välityspalvelimet tekevät erittäin aggressiivisesti). Jos siirrät kyselyparametreja pyynnön runkoon, rikot tätä odotusta, joten vältä tätä. ' asetat itsesi vaikeiden virheenkorjausongelmien varalle. Valitettavasti joissakin järjestelmissä URL-osoitteen pituusraja on muutaman kt. Jos suunnittelet edelleen sovellusliittymääsi ja huomaat, että käsittelet hyvin monimutkaisia kyselyitä, GraphQL-sovellusliittymä voi olla sopivampi kuin REST.
  • Sen lisäksi, mitä @amon sanoi, laittaa runko GET: ään pyyntö rikkoo selvästi HTTP-määrityksiä. Käytä POSTia.
  • @Manya tämän pinon ylivuoto -vastauksen kommentit keskustelevat Elasticsearchistä hieman. Huomaa, että selaimet eivät yleensä kuluta Elasticsearchia suoraan, vaan vain sisäiset sovellukset, joten niillä on vähän enemmän joustavuutta – sinulla on täysi hallinnan asiakas ja verkko.

Vastaus

GET-pyyntöjä, joissa on runko , tuetaan HTML-spesifikaatioissa.

Katso pinon ylivuotokysymys Onko tämä lause oikea? HTTP GET -menetelmällä ei aina ole keskustelulle viestiä.

Se on kuitenkin epätavallista. Yllätät ihmiset tällä ratkaisulla. Pelkkä POST-tilaan siirtyminen on parempi idea.

Ainoa haittapuoli (ylösalaisin?) on ärsyttäviä RESTfulness-akolyyttejä.

Kommentit

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *