2015-01-21 7 views
5

Nella mia API RESTful, tutte le risorse estendono la base di Spring ResourceSupport, al fine di garantire i principi di hateoas di progettazione. Per esempio:Swagger e RESTful spring hatooas resources

public class PoolResource extends ResourceSupport { 
    private String name; 
    ... 
} 

sto utilizzando anche Swagger, e mi chiedevo: è possibile configurare la spavalderia-ui in qualche modo, di ignorare le proprietà provenienti da ResourceSupport?

enter image description here

(Swagger-ui fornisce un frontend piacevole e facile delle API. Come uno dei principali vantaggi dell'utilizzo di Swagger, l'API è facile da capire e da giocare con l'API per coloro, che sono non ho nemmeno familiarità con l'API REST ... finchè i "link" e "rels" entrano nell'immagine.)

+9

Se non vuoi hypermedia, perché stai usando Spring HATEOAS in primo luogo? Se vuoi hypermedia, perché stai usando Swagger (che sovverte attivamente hypermedia)? –

+1

Voglio hypermedia. Dopo aver studiato i principi RESTful, ho compreso i vantaggi dell'utilizzo di hypermedia, quindi volevo davvero progettare un'API [level 3] (http://martinfowler.com/articles/richardsonMaturityModel.html). Questo è il motivo per cui usa Spring HATEOAS. Ma la maggior parte degli utenti dell'API non è ancora a conoscenza di hypermedia e non capisce perché è buona a tutti. Per loro, swagger offre una visione molto interessante dell'API completa. È molto bello presentarlo a chiunque e facile da capire anche da mia nonna a uno sviluppatore senior. Cosa intendi con Swagger che "sovrascrive l'ipermedia"? – istibekesi

+2

La maggior parte delle risposte mi suggerisce di non usare lo spavaldo, [gloria di REST] (http://martinfowler.com/articles/richardsonMaturityModel.html) risolverà la maggior parte delle mie domande. Ok, quindi immagina, butto via la spavalderia. Questo mi porta a domande come questa: - Ho una risorsa 'Pool'. Cosa succede se ho un sistema appena installato, senza alcuna istanza di pool esistente, quindi non posso ottenere un pool. Come creare (POST) un pool di? Come appare la piscina? - E i campi opzionali? Validazioni? Richiesto ... ecc.? - Che dire della documentazione "offline"? – istibekesi

risposta

0

L'unico modo ragionevole di nasconderlo sarebbe nasconderlo dal modello stesso (ci sono diversi modi per farlo, sebbene se usi Spring MVC, non sono sicuro di ciò che swagger-springmvc supporta).

Si potrebbe teoricamente incidere swagger.js per nasconderlo, ma questa è un'intera avventura.

6

Suggerirei di buttar via la spavalderia e utilizzare un restclient come Postman. Postman rende cliccabili i collegamenti forniti da Spring-hate, in modo da poter navigare attraverso l'API abbastanza rapidamente. Se si desidera fornire ulteriori informazioni/documentazione, è possibile salvare tali richieste in una raccolta di richieste in Postman ed esportarle per la distribuzione. Dopo aver provato diversi strumenti di documentazione per le apis di resto, tra cui raml, swagger, apiary e infine post-collezioni in combinazione con i hateaos, ho trovato che quest'ultimo è quello con cui sono più soddisfatto.

0

Con molla dati REST 2.4.0.RELEASE, ora avete molteplici forme di metadati:

  • ALPS
  • JSON Schema
  • installare il browser HAL tramite primavera-dati-resto-hal browser modulo e navigazione via hypermedia
0

Uno sguardo HAL Browser

http://api.opensupporter.org/hb2/browser.html#/api/v1

E aiuta a visualizzare la rete di relazioni tra le risorse, in modo pretende necessariamente mostrare richiesta esempi per una risorsa, ma ha aree da mostrare la documentazione .

I miei pensieri sono che sarebbe un modo più semplice per ottenere un'autenticazione Hateos autodocumentata, in una certa misura. E forse uno di quei link ipermediali potrebbe essere un sito spavaldo o I valori accettabili potrebbero essere nei documenti che ho citato sopra.