Cabaran:
Adalah penting untuk mereka bentuk API yang menyokong ulasan yang dikaitkan dengan berbilang jenis data (cth., acara, tempat, benda). Cabarannya ialah untuk mencapai keseimbangan antara URL logik dan mendapatkan semula objek induk (cth. peristiwa) dalam permintaan GET.
Kaedah yang disyorkan:
ServiceStack menyediakan pelaksanaan perkhidmatan yang fleksibel dan fungsi penghalaan tersuai, yang boleh menyelesaikan masalah ini dengan berkesan:
Kumpulkan sumber secara hierarki menggunakan laluan induk untuk menyediakan konteks:
<code>/events //所有事件 /events/1 //事件 #1 /events/1/reviews //事件 #1 的评论</code>
Tentukan setiap operasi sebagai mesej unik dalam perkhidmatan:
<code>[Route("/events", "GET")] public class SearchEvents : IReturn<SearchEventsResponse> {} [Route("/events/{Id}", "GET")] public class GetEvent : IReturn<Event> {}</code>
Untuk meningkatkan kekukuhan, disyorkan untuk memisahkan operasi UpdateEvent
dan CreateEvent
kepada mesej yang berbeza:
<code>[Route("/events/{Id}", "PUT")] public class UpdateEvent : IReturn<Event> {} [Route("/events", "POST")] public class CreateEvent : IReturn<Event> {}</code>
Gunakan kaedah yang sama untuk EventReviews
:
<code>[Route("/events/{EventId}/reviews", "GET")] public class GetEventReviews : IReturn<GetEventReviewsResponse> {} [Route("/events/{EventId}/reviews/{Id}", "GET")] public class GetEventReview : IReturn<EventReview> {}</code>
Untuk projek besar, disyorkan untuk mengekalkan struktur projek yang jelas:
Atas ialah kandungan terperinci Bagaimana untuk Merekabentuk API ServiceStack untuk Mendapatkan Objek Terpaut dengan Struktur URL yang Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!