Support xs-ms-enum values without the "value" label
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Empieza inspeccionando XmsEnumExtension y XmsEnumValue y, a continuación, reproduce el fallo de deserialización de Newtonsoft.Json con el JSON x-ms-enum mostrado en la ruta de comparación de OpenApi-Diff. Se considera terminado cuando las entradas de enum representadas como valores primitivos, incluidos 3, 4 y 5, se deserializan y comparan sin lanzar una JsonSerializationException.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Some contract generators define the values of x-ms-enum as a list of actual values without labels.
The current version OpenApi-Diff doesn't support this format and throws a Newtonsoft.Json.JsonSerializationException in this case.
Example of x-ms-enum with and without the "value" label
"enum": [
"Mammals",
"Fish",
"Birds",
"Reptiles",
"Amphibians",
"Invertebrates"
],
"type": "string",
"x-ms-enum": {
"name": "PetType",
"modelAsString": false,
"values": [
{
"value": 0,
"description": "humans and all other animals that are warm-blooded vertebrates",
"name": "Mammals"
},
{
"value": 1,
"description": "aquatic, craniate, gill-bearing animals that lack limbs with digits"
},
{
"value": 2,
"name": "Birds"
},
3,
4,
5
],
"x-nullable": false
}
The issue with this XmsEnumExtension is that we cannot cast an object of primitive type (e.g. long, string) to a XmsEnumValue , thus all contracts that contains x-ms-enum with a list of values of primitive type causes a deserialization issue in the OpenApiDiff comparison.
The exception is the following
Newtonsoft.Json.JsonSerializationException : Error converting value 3 to type 'AutoRest.Swagger.Model.XmsEnumValue'. Path 'definitions.PetType.x-ms-enum.values[0]', line 235, position 11.
----> System.ArgumentException : Could not cast or convert from System.Int64 to AutoRest.Swagger.Model.XmsEnumValue.
- Lenguaje dominante
- C#
- Estrellas
- 290
- Forks
- 50
- Merge medio
- 2 d 21 h
- PR fusionados (30 d)
- 10
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Azure/openapi-diff
-
Azure/openapi-diff#482 · 1 asignado ·
-
Azure/openapi-diff#479 · 2 comentarios · 1 asignado ·
-
Remove dependency `autorest` Abierto
Azure/openapi-diff#456 · 1 asignado ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Azure/openapi-diff#445 ·
-
Azure/openapi-diff#371 · 7 comentarios · 1 asignado ·
Todos los issues de Azure/openapi-diff
Issues similares
-
Documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
cake-build/cake#5024 ·
-
Gå gjennom ESLint-suppressions AbiertoFrontend status/draft TechnicalDebt
Dificultad 2/5 1-2 días Aptitud para principiantes 75/100
Altinn/altinn-auth#4143 ·
-
.NET Flaky Test Testing Tests
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
getsentry/sentry-dotnet#5617 · 1 comentario ·
-
Add more to the documentation Abierto:watch: Not Triaged dotnet-fsharp/svc
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
-
Client customer-reported needs-team-attention question Service Attention WebPubSub
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Azure/azure-sdk-for-net#63292 · 3 comentarios · 1 reacción ·