public void Example() { #region Usage JSchemaGenerator generator = new JSchemaGenerator(); JSchema schema = generator.Generate(typeof(User)); // { // "type": "object", // "properties": { // "name": { // "type": "string" // }, // "role": { // "type": [ // "string", // "null" // ] // } // }, // "required": [ // "name" // ] // } #endregion Assert.AreEqual(JSchemaType.Object, schema.Type); }
public void Example() { #region Usage JSchemaGenerator generator = new JSchemaGenerator(); // types with no defined ID have their type name as the ID generator.SchemaIdGenerationHandling = SchemaIdGenerationHandling.TypeName; JSchema schema = generator.Generate(typeof(Person)); // { // "id": "Person", // "type": "object", // "properties": { // "name": { // "type": [ "string", "null" ] // }, // "age": { "type": "integer" } // }, // "required": [ "name", "age" ] // } #endregion Assert.AreEqual(JSchemaType.Object, schema.Type); Assert.AreEqual("Person", schema.Id.OriginalString); }
private JSchema CreateSchemaWithFormat(Type type, Required required, string format) { JSchemaGenerator generator = new JSchemaGenerator(); JSchema schema = generator.Generate(type, required != Required.Always); schema.Format = format; return schema; }
public void Example() { #region Usage JSchemaGenerator generator = new JSchemaGenerator(); JSchema schema = generator.Generate(typeof(BuildingReport)); // { // "type": "object", // "properties": { // "Date": { // "type": "string" // }, // "Zone": { // "type": "integer", // "enum": [ 0, 1, 2 ] // } // }, // "required": [ "Date", "Zone" ] // } JSchemaGenerator stringEnumGenerator = new JSchemaGenerator(); // change Zone enum to generate a string stringEnumGenerator.GenerationProviders.Add(new StringEnumGenerationProvider()); JSchema stringEnumSchema = stringEnumGenerator.Generate(typeof(BuildingReport)); // { // "type": "object", // "properties": { // "Date": { // "type": "string" // }, // "Zone": { // "type": "string", // "enum": [ "Residential", "Commercial", "Industrial" ] // } // }, // "required": [ "Date", "Zone" ] // } #endregion Assert.AreEqual(JSchemaType.Integer, schema.Properties["Zone"].Type); Assert.AreEqual(JSchemaType.String, stringEnumSchema.Properties["Zone"].Type); }
public void Example() { #region Usage JSchemaGenerator generator = new JSchemaGenerator(); JSchema schema = generator.Generate(typeof(Person)); // { // "type": "object", // "properties": { // "Name": { // "type": [ "string", "null" ] // }, // "Age": { "type": "integer" } // }, // "required": [ "Name", "Age" ] // } #endregion Assert.AreEqual(JSchemaType.Object, schema.Type); }
public void Example() { #region Usage JSchemaGenerator generator = new JSchemaGenerator(); generator.GenerationProviders.Add(new FormatSchemaProvider()); JSchema schema = generator.Generate(typeof(User)); // { // "type": "object", // "properties": { // "Id": { // "type": "integer", // "format": "int32" // }, // "Name": { // "type": [ // "string", // "null" // ] // }, // "CreatedDate": { // "type": "string", // "format": "date-time" // } // }, // "required": [ // "Id", // "Name", // "CreatedDate" // ] // } #endregion Console.WriteLine(schema.ToString()); Assert.AreEqual(JSchemaType.Integer, schema.Properties["Id"].Type); Assert.AreEqual("int32", schema.Properties["Id"].Format); }
public void Example() { #region Usage JSchemaGenerator generator = new JSchemaGenerator(); JSchema schema = generator.Generate(typeof(Building)); // { // "type": "object", // "properties": { // "Name": { // "type": "string", // "maxLength": 100 // }, // "PhoneNumber": { // "type": "string", // "format": "phone" // }, // "Zone": { // "type": "string", // "enum": [ // "Residential", // "Commercial", // "Industrial" // ] // } // }, // "required": [ // "Name", // "PhoneNumber", // "Zone" // ] // } #endregion Assert.AreEqual(JSchemaType.Object, schema.Type); }
public void Example() { #region Usage JSchemaGenerator generator = new JSchemaGenerator(); // change contract resolver so property names are camel case generator.ContractResolver = new CamelCasePropertyNamesContractResolver(); JSchema schema = generator.Generate(typeof(Person)); // { // "type": "object", // "properties": { // "name": { // "type": [ "string", "null" ] // }, // "age": { "type": "integer" } // }, // "required": [ "name", "age" ] // } #endregion Assert.AreEqual(JSchemaType.Object, schema.Type); Assert.AreEqual(true, schema.Properties.ContainsKey("name")); }