2015-08-29 7 views
2

Je suis en train de concevoir une API REST. Comme vous le savez, il n'y a pas de spécification réelle pour une API RESTful. Dans mon cas, j'ai une API simple où j'ai des utilisateurs. Je peux obtenir des utilisateurs, les mettre à jour. Quelque chose comme ceci:Rest API différents modèles pour POST et GET/PUT

GET .../utilisateurs/12

Cependant, pour la création d'utilisateurs je veux le seul pour permettre un sous-ensemble des propriétés. E.g. Lorsque vous obtenez un utilisateur, vous obtenez de nombreuses propriétés comme: Id, Nom, CreationDate et ainsi de suite

Lorsque vous créez un utilisateur, je veux seulement laisser afficher le nom et rien d'autre. Est-il permis d'avoir des modèles différents pour différents verbes http pour la même ressource dans votre compréhension d'un service RESTful? Ou voulez-vous attendre à ce qu'un

POST ../users

peuvent avoir exactement les mêmes propriétés que vous obtenez lorsque vous allez chercher un existant?

Ou y at-il quelque chose que vous pensez que je ne devrais pas faire cela? Je me demandais juste après avoir lu de nombreuses discussions religieuses;)

Nous vous remercions à l'avance mieux Laurin

Répondre

0

Première: Je pense qu'il ya une bonne définition du style d'architecture RESTful en mémoire Roy Fielding Architectural Styles and the Design of Network-based Software Architectures. Deuxièmement: Je pense que vous avez un petit malentendu REST ne concerne pas les modèles ou les contrôleurs, il s'agit de ressources. Souvent, il existe une relation un-à-un entre le modèle et la ressource, mais ce n'est pas obligatoire.

Troisièmement: Pour réaliser vos besoins, vous n'avez besoin que d'un modèle user. Lorsque l'utilisateur API publie plus que vos paramètres autorisés, ignorez-les et n'utilisez que les paramètres que vous souhaitez définir sur votre nouveau modèle. Ou si vous ne voulez pas les ignorer, retournez un état HTTP 400 Bad Request.

+0

Bonjour Johannes Merci pour votre réponse! Cela m'a aidé :) – LaurinSt