Örneğin varlıklarım var: Müşteri, Rapor. Müşteri birçok Rapor içerebilir ve tek bir Rapor yönetimi için uç nokta bu şekilde iç içe olması gerektiğini düşünüyorum:
/clients/{client_id}/reports/{report_id}
Bir müşterinin tüm raporlarına gelince, enpoint bekleniyor:
/clients/{client_id}/reports
Ancak, API'nın tutarlı ve iyi tasarlanmış olmasını sağlamak için tüm İstemcilerin Tüm Raporlarını almak için nasıl bir uç noktaya bakılmalıdır?
Yaklaşımlarım:
- (Bazı Google API'larında gördüm) yerine "-" kullanın ve "all" olarak ayrıştırın:
/clients/-/reports
Bu, uç nokta biçimini aynı tutar, ancak biraz alışılmadık görünür, bu şekilde öneren herhangi bir rfc bulamaz.
- Yalnızca tüm raporlar için ayrı bir uç nokta oluşturun:
/reports
Ancak Müşterinin Raporlarını almak için hala:
/clients/{client_id}/reports
- "Müşteri" yi bir üst öğe değil, yalnızca bir filtre parametresi yapmak için refactor uç noktaları:
/reports?client={client_id}
- bir müşterinin raporları
/reports
- tüm müşterinin raporları
Belirli bir istemciye rapor göndermek için yeni bir bitiş noktası eklenmesi durumunda, URL'de bir parametre içeren bir POST isteği olacağı için çirkin görünebilir.
Başka fikir önerileri var mı?