Aklıma gelen şey: RESTful API URL'sinin özyinelemesini yansıtmanıza izin vermeyin. Bir düşünün, kaynağınız sadece belgeler.
Belgelerinizi özyinelemeli yapıya göre fiziksel olarak depoladıysanız, benzersiz bir kimliğe eşleme oluşturun ve URL'deki kimliği kullanın:
/rest/documents/{id}
Şimdi, belgeleriniz böyle varsa:
| BelgeAdı | DocumentPath | Belge Kimliği |
--------------------------------------------
| abc | / abc | 1 |
| asd | / abc / asd | 2 |
| asd | / asd | 3 |
| boo | / abc / asd / boo | 4 |
| hey | / abc / asd / hey | 5 |
istek /abc/asd
belge için bu URL'ye başvurur
GET /rest/documents/2
Şimdi, API'nızın kullanıcılarına yapınızı az çaba sarf etmek için araçlar sağlamanız gerekiyor. Bu, yanıt yükünüzü (belge) aşağıdaki gibi ek geçiş bilgileri içeren bir nesneye sararak yapılabilir:
{
data: { /* your document goes here */ },
parent: {"abc": 1 },
children: [ { "boo": 4 }, { "hey": 5} ]
}
kullanıcıların tek bir düzeyde çok fazla belge oluşturmamasını beklediğiniz takdirde, yanıta bir çocuk listesi ekleyebilirsiniz. Böyle bir durum söz konusu değilse, kullanıcıya, sonuçların sorgu dizesi parametreleri aracılığıyla sayfalanmasına izin vererek, bu şekilde alt belge kimliklerini almasını önerebilirsiniz:
GET /rest/documents/2/children?page=2&size=50
Son olarak, querystring parametrelerinden bahsetmişken, yol bilgisini doğrudan querystring parametreleri aracılığıyla da sağlayabilirsiniz:
GET /rest/documents?path=somepath&page=1&size=42
Bahsedilen tüm yaklaşımlar ovanın GET /rest/documents
sadece kök belgeleri döndürmesini beklemektedir .