2017-02-17 1 views
1

Existe-t-il un moyen de forcer les validateurs de pile de service à utiliser le plug-in de validation fluide pour émettre les propriétés du nom de champ dans le cas de chameau? J'ai configuré leLes validateurs ServiceStack peuvent-ils émettre des noms de champs dans un cas de chameau?

JsConfig.EmitCamelCaseNames = true; 

pour que mes types dactylographiées sont en cas de chameau, mais tous les messages de validation/erreurs viennent à travers dans PascalCase. Je voudrais vraiment garder camelCase dans mes réponses json, mais je serais sûr que la commodité d'avoir des noms de champ qui correspondent aux noms des champs de message d'erreur. Est-ce possible?

Répondre

0

ne suit pas vraiment, quand EmitCamelCaseNames = true le JSON retourné utilise des noms de propriété camelCase mais les données restent dans PacalCase pour correspondre à la demande DTO noms de propriété, par exemple:

{ 
    "responseStatus": { 
    "errorCode": "InclusiveBetween", 
    "message": "'Age' must be between 1 and 120. You entered 0.", 
    "errors": [ 
     { 
     "errorCode": "InclusiveBetween", 
     "fieldName": "Age", 
     "message": "'Age' must be between 1 and 120. You entered 0.", 
     "meta": { 
      "PropertyName": "Age", 
      "From": "1", 
      "To": "120", 
      "Value": "0" 
     } 
     } 
    ] 
    } 
} 

Quelle réponse JSON a la question?

+0

Eh bien, toutes les réponses JSON qui ont des erreurs de validation ont ce problème avec le nom de champ et le meta PropertyName étant dans le cas Pascal. Ceci est juste un inconvénient lors de la consommation des dtos d'un client JavaScript dans le navigateur. Nous avons une convention de codage pour utiliser les objets camelCased, donc nous émettons tous nos types dans camelCase en tournant EmitCamelCaseNames == true. Nous devons également prendre en charge les clients C# afin que je puisse voir pourquoi il ne serait pas bon de changer globalement les noms de propriété dans les données en cas Pascal. Il se peut que nous devions renoncer à notre standard de codage et vivre avec PascalCase dans les dtos. – on3al

+0

@ on3al La convention camelCase n'affecte que les noms de propriété, elle n'affecte pas les données qu'elle contient. C'est cas Pascal dans le [Dictionnaire Meta] (https://github.com/ServiceStack/ServiceStack/blob/8ecf9df8c19b55c3b5a76341f29215b37d6d0a9c/src/ServiceStack.Interfaces/ResponseStatus.cs#L73) parce que c'est un dictionnaire et la clé est aussi des données. – mythz