Plusieurs option paramètres de chaîne de requête API REST OBTENIR

Je suis à l'aide de l'api web 2 pour mettre en œuvre un service restful. Après avoir fait quelques recherches sur les meilleures pratiques, tout le monde semble qu'ils sont d'avoir des opinions différentes sur la façon de faire les suivants. J'ai un

public HttpResponseMessage Get(string crewId, string shiftDate, int offset = 1, int limit = 10)

Cette méthode renvoie une liste. Il y a plusieurs façons d'obtenir les données à partir de cette méthode.

  • Obtenir par crewId seulement
  • Obtenir par shiftDate seulement

ou

  • Obtenir par crewId et shiftDate

Avez-vous (1) Marque de la crewId et shiftDate comme option?

public HttpResponseMessage Get(string crewId = null, string shiftDate = null, int offset = 1, int limit = 10)

et puis avez des tas de if pour vérifier ce qui est comblée et ce n'est pas remplie pour être en mesure de faire des gestes

if(crewId != null && shiftDate == null){
  //Get by crewId
}else if(crewId == null && shiftDate != null){
  //Get By shiftDate
}else if(crewId != null && shiftDate != null){
  //Get By crewId and shiftDate
}

Pour moi, cela semble fou à faire, surtout si vous avez de nombreux paramètres vous avez trop de "si" déclarations dans votre code.

Avez-vous (2) Ont ensemble différent de?

public HttpResponseMessage GetByCrewId(string crewId, int offset = 1, int limit = 10)
public HttpResponseMessage GetByShiftDate(string shiftDate, int offset = 1, int limit = 10)
public HttpResponseMessage GetByCrewIdShiftDate(string crewId, string shiftDate, int offset = 1, int limit = 10)

et ensuite, vous avez votre URI feuille de Route pour la méthode

  • .../api/GetByCrewId?crewId=1234
  • .../api/GetByShiftDate?shiftDate=1111-11-11
  • .../api/GetByCrewIdShiftDate?crewId=1234&shiftDate=1111-11-11

est l'option 2 reposante?

Ou est-il une meilleure options (3).

Les deux options ci-dessus va travailler tout en faisant que je suis sur les meilleures pratiques suivantes en matière de REPOS. Semble juste comme je suis en manque de quelque chose et j'espère que vous pouvez me mettre dans la bonne direction.

OriginalL'auteur Nick Manojlovic | 2016-01-19