2015-07-13 12 views
6

Ho creato un'API che fornisce una risorsa denominata "Anteprima" (/ miniature)Come riutilizzare gli oggetti nello schema dell'API BluePrint?

{ 
    "name": "toto", 
    "uri": "http://xxx" 
} 

In compenso ho più risorse che include quella risorsa Thumbnail in loro (come/articoli,/video ...):

{ 
    "name": "playlist", 
    "thumbnail": 
    { 
     "name": "toto", 
     "uri": "http://xxx" 
    } 
} 

Quando scrivo gli schemi di quei webservices del mark-down progetto, mi piacerebbe essere in grado di riutilizzare lo schema che ho creato per lo schema di Thumbnail, al fine di non ripetere il codice nella schemi. Ho il cuore della funzione Tratti (https://github.com/apiaryio/api-blueprint/issues/47) ma non so se si adatta alle mie esigenze e se funziona con aglio e dredd.

Sai qual è la cosa migliore da fare nel mio caso?

risposta

8

È possibile utilizzare MSON nella sezione Attributes del modello API per definire oggetti riutilizzabili.

È possibile vedere alcuni esempi in here, here e here.

+1

Si noti che ottenere questi rendering in Aglio richiede attualmente l'uso della versione beta, che può essere installata tramite 'npm install -g aglio @ beta'. Presto sarà rilasciato come versione 2.0. – Daniel

+1

Ed è supportato in 'dredd' –

+0

Hum, ma posso usare questi attributi nello schema del mio WS? Mi piace quando Dredd fa il test sullo schema. –

0

Così ho aggiornato il mio dredd e testato MSON. Sembra bello ed efficiente. Ho solo un problema con questo md:

# Data Structures 

## Video (object) 
Definition of a video 
+ id: 11111 (number) - The unique key 
+ description: "my video" (string) - Free text of video 
+ truc: "ffff" (string) 

# Group VideosTest 

## Videos List [/videos] 
List of videos 

### List of videos [GET] 

+ Response 200 (application/json) 

    + Attributes (array[Video]) 

Il doesnt di test non riescono, ma non ho gli attributi "Truc" nel mio vero API e ho un URL attributo. Quindi mi aspettavo che il test fallisse. Ho sbagliato ?

+0

Puoi incollare ciò che la tua vera API si aspetta? –

+0

'[{" id ":" 1 "," descrizione ":" desc "," url ":" http: // xxx "}, {" id ":" 2 "," descrizione ":" desc2 ", "url": "http: // xxx"}} ' –

+0

Sfortunatamente, MSON non supporta più di un singolo elemento nell'array. :( –

0

io do u esempio:

mio md:

# Data Structures 

## Video (object) 
Definition of a video 
    + id: 11111 (number, required) - The unique key 
    + description: "my video" (string, required) - Free text of video 
    + truc: "ffff" (string, required) 

## A video [/videos/{id}] 
See a video 

+ Parameters 

    + id (required, string, `a-la-decouverte-des-metiers-projection-du-film`) ... L'id ou le slug de la video 

### Select a video [GET] 

+ Response 200 (application/json) 

    + Attributes (Video) 

E il mio API:

{ 
"id": "1111", 
"description": "description of the video", 
"uri": "http://" 
} 

Test è OK, ma io voglio un errore da Dredd !!!

Problemi correlati