FasterXML / FasterXML/jackson-module-jsonSchema

How to specify the "id" URI?

Offen
#72 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
387
Forks
136
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

I have two classes: `Article` and `User` and their respective schemas are available at:
- http://localhost:8080/api/articles/$schema
- http://localhost:8080/api/users/$schema

Since `Article.author` is of type `User`, how can I have the correct `$ref` in the schema? Now I'm getting this:

``` json
{
"type":"object",
"properties":{
"id":{
"type":"integer"
},
"title":{
"type":"string"
},
"author":{
"type":"object",
"id":"urn:jsonschema:it:saiv:best:common:entity:User",
"properties":{
"id":{
"type":"integer"
},
"cn":{
"type":"string"
}
}
}
}
}
```

but I would expect something like:

``` json
{
"type":"object",
"properties":{
"id":{
"type":"integer"
},
"title":{
"type":"string"
},
"author":{
"$ref":"http://localhost:8080/api/users/$schema"
}
}
}
```

This is the code I'm using to generate the schema:

``` java
@GET
@Path("/$schema")
@Produces(MediaType.APPLICATION_JSON)
public String getSchema() throws IOException {
HyperSchemaFactoryWrapper visitor = new HyperSchemaFactoryWrapper();
ObjectMapper mapper = new ObjectMapper();
mapper.acceptJsonFormatVisitor(Article.class, visitor);
JsonSchema schema = visitor.finalSchema();
return mapper.writeValueAsString(schema);
}
```

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.