2010-05-23 12 views
6

Recentemente, sono stato molto interessato alle API, in particolare a come crearle. Ai fini di questa domanda, diciamo che ho creato un sito MVC ASP.NET che contiene alcuni dati su di esso; Voglio creare un'API per questo sito.Creazione di un'API per un sito MVC ASP.NET con limitazione della velocità e memorizzazione nella cache

ho più domande su questo:

  1. Che tipo di API dovrei creare? So che le API REST e oData sono molto popolari. Quali sono i pro e i contro di ciascuno e come li implemento? Da quanto ho capito finora, le API REST con ASP.NET MVC sarebbero solo azioni che restituiscono JSON anziché Views e le API oData sono documentate here.
  2. Come gestisco la scrittura? Leggere da entrambi i tipi di API è abbastanza semplice. Tuttavia, la scrittura è più complessa. Con l'approccio REST, capisco che posso usare HTTP POST, ma come posso implementare l'autenticazione? Inoltre, con oData, come funziona la scrittura in primo luogo?
  3. Come si implementa la limitazione della velocità e la memorizzazione nella cache di base? Dalla mia esperienza passata con le API, queste sono cose molto importanti, in modo che il server API non sia sovraccarico. Qual è il modo migliore per impostare queste due cose?
  4. Posso ottenere qualche codice di esempio? Qualsiasi codice correlato a C# e ASP.NET MVC sarebbe apprezzato.

Grazie in anticipo!

Mentre questa è una ampia domanda, penso che non sia troppo ampia ... :)

ci sono alcune domande simili a questa che sono circa le API, ma non ho trovato tutto ciò che riguarda direttamente le domande che ho delineato qui.

risposta

2

Un servizio REST può restituire qualsiasi tipo di supporto. Potrebbe essere uno standard elencato allo IANA oppure potrebbe essere personalizzato.

OData è un protocollo basato su AtomPub. AtomPub stesso è RESTful, tuttavia OData interrompe attualmente alcuni dei vincoli REST.

L'autenticazione di un servizio RESTful viene eseguita al meglio utilizzando l'intestazione di autorizzazione HTTP.

Si scrive su un servizio OData nello stesso modo in cui si fa con un servizio AtomPub. Leggi le specifiche

Personalmente, mi preoccuperei di scrivere un servizio prezioso che fornisca contenuti in modo efficiente prima di preoccuparsi della limitazione della velocità. Puoi essere felice quando finalmente ti imbatti in quel problema.

Per ulteriori informazioni sulla memorizzazione nella cache, leggere this.

+0

Potrebbe indicarmi un codice di esempio che riguarda C# e ASP.NET MVC? Grazie comunque! –

+0

@Maxim http://msdn.microsoft.com/en-us/magazine/dd943053.aspx –

Problemi correlati