2016-06-20 13 views
-3

Wir versuchen, von SOAP zu REST zu migrieren. Alle unsere Objekteigenschaften sind im Pascal-Fall nach C# -Standards. Die REST-Konventionen erfordern jedoch, dass Parameternamen von Objekten in Kamel vorkommen. Wie können wir die Hülle ändern, ohne alle vorhandenen Objekteigenschaften in camel case umzubenennen? Die Objekt-DLLs werden in anderen Modulen referenziert, was die Umbenennung zeitaufwendig macht und viel Testaufwand erfordert.ASP.NET Web API: Konvertieren von Eigenschaftsnamen von Pascal Case in Camel Case nach REST-Standards

PS: Wir verwenden Swagger-Dokumentation. Ich war besorgt, dass die Verwendung von Contract Resolver möglicherweise nicht im Stolz widerspiegeln, aber zum Glück haben sie dieses Problem bereits gelöst (https://github.com/domaindrivendev/Swashbuckle/issues/113).

+0

mit Und nein, REST Konventionen erfordern kein Kamel Fall. – CodeCaster

+0

@CodeCaster, funktioniert es auch für Anfrageobjekte? – user5950302

+0

Ja, die Formatierereinstellungen funktionieren in beide Richtungen. – CodeCaster

Antwort

0

einfach benötigen Sie die Json Serialisierung Einstellung in Ihrem Web-api zu konfigurieren:

 var serializerSettings = new JsonSerializerSettings 
     { 
      DateTimeZoneHandling = DateTimeZoneHandling.Utc, 
      ContractResolver = new CamelCasePropertyNamesContractResolver(), 
      ..... 
     }; 

     config.Formatters.JsonFormatter.SerializerSettings = serializerSettings; 

CamelCasePropertyNamesContractResolver

+0

_ "mit CamelCasePropertyNamesContractResolver" _ - die in dem Duplikat erwähnt wird, schlug ich zehn Minuten vor dieser Antwort vor. Bitte kennzeichnen Sie als Duplikat anstatt zu antworten. – CodeCaster

Verwandte Themen