2017-03-15 1 views
1

Je suis en train de migrer notre serveur de SOAP à REST. J'utilise swashbuckle pour générer la documentation api et autorest pour créer les clients.WebApi définit les valeurs de defualt pour tous les paramètres

J'ai beaucoup de méthodes avec des signatures qui permettent:

1) Les valeurs Nullable

2) Les chaînes qui peuvent permettre à des valeurs nulles

Par exemple, une méthode comme ceci:

public void SetGlobalDataForSite(string wsKey, int? siteId, string title, 
string keywords, string homepagetitle, bool isValidValue) 

Il n'est pas nécessaire d'avoir une valeur pour siteId, keywords ou homepagetitle.

Pour autant que je sais pour permettre à ces valeurs nul je devrais convertir la méthode à quelque chose comme ceci:

public void SetGlobalDataForSite(string wsKey, string title, bool isValidValue, 
int? siteId = null, string keywords = null, string homepagetitle = null) 

Maintenant, cela provoque beaucoup de problèmes:

1) Depuis que je suis changer la signature, il est une erreur très sujette

2) il est beaucoup de travail, j'ai environ 300 méthodes pour changer

3) Je dois aussi changer le code client qui peut induire encore plus de bugs

Existe-t-il un moyen de marquer ces propriétés comme nulles sans changer le signarue? Peut-être qu'il me manque quelque chose. Création d'une classe de demande pour la plupart des méthodes pourrait fonctionner, mais encore une fois je suis génération beaucoup de code inutile.

Toutes les idées seraient appréciées :)

Répondre

1

Vous devrez mettre dans un effort de temps pour convertir - habituellement des options de sécurité peuvent être soit paramètre accept sous la forme de l'objet (il peut être jobject classe ou même Tuple dans la dernière version de C#)

+0

Tuple pourrait faire l'affaire, je vais essayer cela et voir si ça aide –

+0

Ouais, je me suis trompé et j'ai fini par réécrire tous les appels de méthode, il s'avère que c'est l'option la plus sûre , et probablement le plus rapide :) –