Closed StilgarBF closed 5 years ago
{ "schema": { "type": "object", "description": "Freifunk Community API 0.4.6", "required": false, "properties": { "api": { ... "required": true }, müsste das so aussehen:
{ "schema": { "type": "object", "description": "Freifunk Community API 0.4.6", // required : false für den Knoten "schema" ist ungültig und unnötig "required" : ["api", "name", "location", "contact" ......] "properties": { "api": { ... }, Bedeutet also, die benötigten Unterknoten werden in deren Elternknoten in einem array aufgelistet.
wir haben das Schema damals nach JSON Schema Draft 3 gebaut, da galt das für required noch mit true und false: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.7
der API-Generator validiert im Moment auch nach v3.
ah ok. v4 ist jetzt 2 Jahre alt. Eventuell irgendwann mal umstellen? Weil für die Verwendung von Validatoren wäre das schon sinnvoll. z.B. wenn die Communities ihre files vor auslieferung durch einen Generator selbst validieren wollen.
pressiert aber tatsächlich kaum.
hab in b0442e12050ee44e32e6d3769ef7386c415279a2 mal die Schemaversion ergänzt.
Ein Blocker für draft4 ist für mich im Moment, dass jsonform, das Ding, was den API-Generator baut und die Dateien validiert, draft4 nicht unterstützt.
Das Tool scheint nicht sonderlich aktiv entwickelt zu werden.
vermutlich ist das Thema hier dann erstmal auf onhold, bis sich jemand findet, der jsonform fit für die neue Version macht.
Dieses Ticket kann geschlossen werden. Die Freifunk Schema Dateien sind gemäß offizieller draft-3 Spezifikation aktuell valide: http://json-schema.org/draft-03/schema#
Der Ticketersteller hatte versucht die Freifunk JSON Schema Datei mit darft-4 Spezifikation zu validieren oder das verwendete Tool hat ein false-positiv ausgegeben, oder das Problem wurde zwischenzeitlich gelöst.
Die Migration zu einer aktuelleren JSON Spezifikation sollte dann lieber separat in https://github.com/freifunk/api.freifunk.net/issues/151 besprochen werden.
Bitte das Ticket hier schließen.
nach http://json-schema.org/latest/json-schema-validation.html#anchor61 ist das schema nicht valide. Anders ausgedrückt: "das Schema ist kein valides Schema"
Denn http://json-schema.org/latest/json-schema-validation.html#anchor61
statt z.b.
müsste das so aussehen:
Bedeutet also, die benötigten Unterknoten werden in deren Elternknoten in einem array aufgelistet.
Das Schema könnte angepasst werden, ohne dass die Community-files geändert werden müssten. Nebenbei wird das Schema so auch deutlich schlanker.
Ist mir aufgefallen bei Verwendung von jsv4, der Warnings ausspuckt, wenn er nicht über "required" iterieren kann. https://github.com/geraintluff/jsv4-php