Api-blueprint: Attribute mit einem Array von Objekten erzeugen ein unvollständiges Schema

Erstellt am 11. Mai 2016  ·  8Kommentare  ·  Quelle: apiaryio/api-blueprint

Der folgende Teil meiner Textdatei:

  • Antwort 200 (Anwendung/json)

    • Attribute (Objekt)

    • Knoten (Array[Objekt])



      • ID: 4 (Zahl)


      • sname: Chromista (string) - Der wissenschaftliche Name


      • rank: Kingdom (string) - Der taxonomische Rang des wissenschaftlichen Namens


      • authorship: noworms, 1603 (string) - Autorschaftsinformationen zum wissenschaftlichen Namen



    • Körper

```
{
    "nodes": [
        {
            "id": "1",
            "sname": "Animalia",
            "rank": "Kingdom",
            "authorship": "noworms, 1603"
        },
        {
            "id": "2",
            "sname": "Archaea",
            "rank": "Kingdom",
            "authorship": "noworms, 1603"
        },
        {
            "id": "3",
            "sname": "Bacteria",
            "rank": "Kingdom",
            "authorship": "noworms, 1603"
        },
        {
            "id": "4",
            "sname": "Chromista",
            "rank": "Kingdom",
            "authorship": "noworms, 1603"
        },
        {
            "id": "5",
            "sname": "Fungi",
            "rank": "Kingdom",
            "authorship": "noworms, 1603"
        }
    ],
    "hasMore": 1
}
```

Erzeugt diesen HTML-Code:

pic1

Der Teil des Schemas innerhalb der ""Knoten" fehlt! Warum?
Ich habe auch versucht, Datenstrukturen zu verwenden, aber das Schema bleibt unvollständig.

Hilfreichster Kommentar

Kannst du das versuchen?

+ nodes (array, fixed)
    + (object)
        + id: 4 (number)

Alle 8 Kommentare

@agougousis Kannst du Folgendes versuchen?

nodes (array[object], fixed)

In Ordnung! Obwohl ich noch nicht herausgefunden habe, woher diese "feste" Welt stammt, ist das Schema jetzt vollständig.
Es scheint jedoch, dass das erstellte Schema nicht richtig ist.
Das erzeugte Schema ist:

pic3

und das richtige Schema sollte sein:

pic4

Liege ich falsch?

Kannst du das versuchen?

+ nodes (array, fixed)
    + (object)
        + id: 4 (number)

Ja! Viel besser! Ich hätte nicht gedacht, dass man "anonyme" Objekte definieren kann!
Ich bin mir nicht sicher, aber ich denke, dass die im folgenden Screenshot markierten Klammern nicht vorhanden sein sollten. Was denkst du?
schema

@agougousis Die Klammern sind korrekt, da es sich bei den Elementen um eine Reihe möglicher Typen handelt

Ich erinnere mich nicht sehr gut an die Regeln, aber in http://jsonschema.net/ (eine schnelle und schmutzige Lösung, die ich von Zeit zu Zeit verwende), wenn ich die Json-Daten als Eingabe gebe, wird mir das Schema ohne diese Klammern angezeigt .

@agougousis verwendet dafür ein fixed-type :

+ nodes (array, fixed-type)
    + (object)
        + id: 4 (number)

+1 für den festen Typ

fixed - Instanz dieses Typs Struktur und Werte sind fixiert. Dieses Attribut wird an geschachtelte Elementtypen weitergegeben.

Fixed-Type - Instanz dieser Typstruktur ist fest, Wert nicht. Dieses Attribut wird nicht an geschachtelte Elementtypen weitergegeben.

https://apiblueprint.org/documentation/mson/specification.html#353 -type-attribute

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen