Şu anda PHP'de RESTful API tasarlayıp uyguluyorum. Ancak, ilk tasarımımı uygulamada başarısız oldum.
GET /users # list of users
GET /user/1 # get user with id 1
POST /user # create new user
PUT /user/1 # modify user with id 1
DELETE /user/1 # delete user with id 1
Şimdiye kadar oldukça standart, değil mi?
Benim sorunum birincisi ile ilgili GET /users
. Listeyi filtrelemek için istek gövdesinde parametreler göndermeyi düşünüyordum. Bunun nedeni, süper uzun bir url almadan karmaşık filtreler belirtmek istiyorum, çünkü:
GET /users?parameter1=value1¶meter2=value2¶meter3=value3¶meter4=value4
Bunun yerine şöyle bir şey istedim:
GET /users
# Request body:
{
"parameter1": "value1",
"parameter2": "value2",
"parameter3": "value3",
"parameter4": "value4"
}
çok daha okunabilir ve karmaşık filtreler ayarlamak için size büyük olanaklar sunuyor.
Her neyse, istekler file_get_contents('php://input')
için istek gövdesini döndürmedi GET
. Ben de denedim http_get_request_body()
, ama kullandığım paylaşılan barındırma yok pecl_http
. Yine de yardımcı olurdu emin değilim.
Bu soruyu buldum ve GET'in muhtemelen bir talep gövdesine sahip olmaması gerektiğini fark ettim. Biraz sonuçsuz, ama buna karşı tavsiye.
Şimdi ne yapacağımdan emin değilim. RESTful arama / filtreleme işlevini nasıl tasarlarsınız?
Sanırım kullanabiliyorum POST
, ama bu çok RESTful gibi görünmüyor.