2010-05-23 8 views
6

Recientemente, he estado muy interesado en las API, específicamente en cómo crearlas. A los efectos de esta pregunta, digamos que he creado un sitio ASP.NET MVC que contiene algunos datos; Quiero crear una API para este sitio.Creación de una API para un sitio ASP.NET MVC con limitación de velocidad y almacenamiento en memoria caché

He múltiples preguntas acerca de esto:

  1. ¿Qué tipo de API debería crear? Sé que las API REST y oData son muy populares. ¿Cuáles son los pros y contras de cada uno, y cómo los implemento? Por lo que entiendo hasta ahora, las API REST con ASP.NET MVC solo serían acciones que devuelvan JSON en lugar de Vistas, y las API oData están documentadas here.
  2. ¿Cómo manejo la escritura? Leer de ambos tipos de API es bastante simple. Sin embargo, escribir es más complejo. Con el enfoque REST, entiendo que puedo usar HTTP POST, pero ¿cómo implemento la autenticación? Además, con oData, ¿cómo funciona la escritura en primer lugar?
  3. ¿Cómo implemento la limitación de velocidad básica y el almacenamiento en caché? Según mi experiencia anterior con las API, estas son cosas muy importantes, por lo que el servidor API no está sobrecargado. ¿Cuál es la mejor manera de configurar estas dos cosas?
  4. ¿Puedo obtener un código de muestra? Cualquier código que se relacione con C# y ASP.NET MVC sería apreciado.

¡Gracias de antemano!

Si bien esta es una pregunta amplia, creo que no es demasiado amplio ... :)

Hay algunas preguntas similares a éste que están sobre las API, pero no he encontrado cualquiera que aborde directamente las preguntas que describí aquí.

Respuesta

2

Un servicio REST puede devolver cualquier tipo de medio. Podría ser uno estandarizado listado en IANA, o podría ser uno personalizado creado por usted.

OData es un protocolo integrado en AtomPub. AtomPub en sí mismo es RESTful, sin embargo, OData actualmente rompe algunas de las restricciones de REST.

La autenticación de un servicio REST se realiza mejor utilizando el encabezado Autorización HTTP.

Escribe en un servicio OData de la misma forma que lo hace con un servicio AtomPub. Lee la especificación

Personalmente, me preocuparía escribir un servicio valioso que proporcione contenido de manera eficiente antes de preocuparme por la limitación de velocidad. Puedes ser feliz cuando finalmente te encuentres con ese problema.

Para obtener más información sobre el almacenamiento en caché, lea this.

+0

¿Podría indicarme algún código de muestra relacionado con C# y ASP.NET MVC? ¡Gracias de cualquier manera! –

+0

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

Cuestiones relacionadas