Sono curioso di sapere come altri hanno affrontato il problema della generazione di collegamenti ipermediali per le loro API Web? In particolare, sto usando l'API Web ASP.NET e sono diviso tra il fatto che le operazioni restituiscano tipi correlati all'ipermedia, o che restituiscano la risorsa stessa, e che le cose ipermedia avvengano più tardi nella pipeline. Cioè, le persone tendono a fare le cose come:Generazione di collegamenti Hypermedia in un'API Web
public Resource<Order> GetOrder(int id) {
return new Resource<Order>() {
Content = new Order(),
Links = new LinkCollection<Order>() { new AddOrderLink(), new UpdateOrderLink()}
}
O qualcosa di più simile a
public Order GetOrder(int id) { return new Order(); }
E poi aggiungere collegamenti ipermediali all'interno di un HttpOperationHandler o personalizzato formattatore o qualcosa del genere?
Se l'approccio è più simile a # 2, come fai a sapere quali link generare? Hai solo un set standard di link che vengono generati per tutti gli oggetti Order? Attributi che decorano varie operazioni in OrderController?
Addendum: Ho letto il post di Glenn Block su hypermedia in Web API (http://codebetter.com/glennblock/2012/01/08/hypermedia-and-web-api-design-brain-dump-and -samples /) e mentre sembra preferire la generazione dei collegamenti in funzione (simile all'esempio 1 sopra), mi sembra che il percorso del "middleware" che egli menziona verso la fine sia più naturale. – Jordan0Day
guarda la presentazione di ammy su newzealand teched http://channel9.msdn.com/Events/TechEd/NewZealand/2013/DEV305 la sua soluzione è promettente per hypermedia con web api guarda anche qui github codice di esempio – Gomes