Défi :
Il est essentiel de concevoir une API qui prend en charge les commentaires associés à plusieurs types de données (par exemple, des événements, des lieux, des objets). Le défi consiste à trouver un équilibre entre les URL logiques et la récupération des objets parents (par exemple des événements) dans les requêtes GET.
Méthode recommandée :
ServiceStack fournit une implémentation de service flexible et des fonctions de routage personnalisées, qui peuvent résoudre efficacement ce problème :
Regroupez les ressources de manière hiérarchique en utilisant les chemins parents pour fournir du contexte :
<code>/events //所有事件 /events/1 //事件 #1 /events/1/reviews //事件 #1 的评论</code>
Définissez chaque opération comme un message unique dans le service :
<code>[Route("/events", "GET")] public class SearchEvents : IReturn<SearchEventsResponse> {} [Route("/events/{Id}", "GET")] public class GetEvent : IReturn<Event> {}</code>
Pour améliorer la robustesse, il est recommandé de séparer les opérations UpdateEvent
et CreateEvent
en différents messages :
<code>[Route("/events/{Id}", "PUT")] public class UpdateEvent : IReturn<Event> {} [Route("/events", "POST")] public class CreateEvent : IReturn<Event> {}</code>
Appliquer la même méthode à EventReviews
:
<code>[Route("/events/{EventId}/reviews", "GET")] public class GetEventReviews : IReturn<GetEventReviewsResponse> {} [Route("/events/{EventId}/reviews/{Id}", "GET")] public class GetEventReview : IReturn<EventReview> {}</code>
Pour les grands projets, il est recommandé de maintenir une structure de projet claire :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!