Ben HTTP üzerinden gitmek için bir API tasarlıyorum ve HTTP POST komutunu kullanarak merak ediyorum, ama sadece URL sorgu parametreleri ve hiçbir istek gövdesi ile gitmek için iyi bir yoldur.
hususlar:
- "İyi Web tasarımı", POST yoluyla idempotent olmayan eylemlerin gönderilmesini gerektirir. Bu idempotent olmayan bir eylemdir.
- URL'de istek parametreleri bulunduğunda bu uygulamayı geliştirmek ve hatalarını ayıklamak daha kolaydır.
- API yaygın kullanıma yönelik değildir.
- Görünüşe göre, hiçbir gövdeden bir POST isteği yapmak biraz daha fazla iş gerektirmeyecektir, örneğin bir
Content-Length: 0
başlık açıkça eklenmelidir. - Bana öyle geliyor ki, gövdesi olmayan bir POST, çoğu geliştiricinin ve HTTP çerçevesinin beklentilerine karşı biraz karşıdır.
İstek gövdesi yerine, URL sorgusu üzerinden bir POST isteğinde parametre göndermenin başka tuzakları veya avantajları var mı?
Düzenleme: Bu göz önünde bulundurulmasının nedeni, operasyonlar idempotent değildir ve alma dışında yan etkileri olmasıdır. HTTP spesifikasyonuna bakın :
Özellikle, GET ve HEAD yöntemlerinin geri alım dışında bir işlem yapmanın önemine sahip OLMAMASI gerektiği anlaşılmıştır. Bu yöntemler "güvenli" olarak değerlendirilmelidir. Bu, kullanıcı aracılarının POST, PUT ve DELETE gibi diğer yöntemleri özel bir şekilde temsil etmesini sağlar, böylece kullanıcı muhtemelen güvenli olmayan bir eylemin istendiğinden haberdar edilir.
...
Yöntemler "idempotence" özelliğine de sahip olabilir (hata veya son kullanma sorunlarının yanı sıra) N> 0 özdeş isteklerin yan etkileri tek bir istekle aynıdır. GET, HEAD, PUT ve DELETE yöntemleri bu özelliği paylaşır. Ayrıca, OPTIONS ve TRACE yöntemlerinin yan etkileri OLMAMALIDIR ve bu nedenle doğası gereği idempotenttir.