2008-09-13 12 views
33

Estoy buscando buenos enlaces con las mejores prácticas y código de muestra para crear REST servicios web completos usando .NET.Comenzando con REST

Además, cualquier otra entrada que pueda tener con respecto a REST sería muy apreciada.

+0

posible duplicado de [¿Qué es exactamente la programación RESTful?] (Http://stackoverflow.com/questions/671118/what-excaly-is-restful-programming) –

Respuesta

23

ADO.Net Data Servcies hace que sea muy fácil de construir y consume servicios web RESTful en el mundo .Net pero sin embargo la comprensión de los conceptos es importante. Comparado con WCF (que agregó soporte REST más adelante), ADO.Net Data Services se construyó principalmente para REST.

Guidelines for Building RESTful Web Services tiene toda la información sobre los recursos que necesita.

Ésta es otra utilidad blog entry:

Las limitaciones de interfaz uniforme describen cómo un servicio integrado para la Web puede ser un buen participante en la arquitectura Web. Estas restricciones se describen brevemente de la siguiente manera:

1) Identificación de recursos: Un recurso es cualquier elemento de información que puede nombrarse y representarse (p.un documento, el precio de una acción en un punto determinado en el tiempo, el clima actual en Las Vegas, etc.). Los recursos en su servicio se deben identificar usando URI.

2) Manipulación de recursos mediante representaciones: una representación es la representación física de un recurso y debe corresponder a un tipo de medio válido. El uso de tipos de medios estándar como los formatos de datos detrás de su servicio aumenta el alcance de su servicio haciéndolo accesible a una amplia gama de clientes potenciales. La interacción con el recurso debe basarse en la recuperación y manipulación de la representación del recurso identificado por su URI.

3) Mensajes autodescriptivos: siguiendo los principios de apatridia en las interacciones de su servicio, utilizando tipos de medios estándar e indicando correctamente la caché de mensajes a través del uso del método HTTP y encabezados de control asegura que los mensajes sean autodescriptivos. Los mensajes autodescriptivos permiten que los mensajes sean procesados ​​por los intermediarios entre el cliente y el servidor sin afectar a ninguno de los dos.

4) Hipermedia como el motor del estado de la aplicación: El estado de la aplicación debe expresarse mediante URI e hipervínculos para la transición entre estados. Esta es probablemente la más controvertida y menos entendida de las restricciones arquitectónicas establecidas en Roy Fielding's dissertation. De hecho, la disertación de Fielding contiene un argumento explícito contra el uso de cookies HTTP para representar el estado de la aplicación y hacer que este punto sea más común, aunque a menudo se ignora.

8

Windows Communication Foundation supports REST model since .NET 3.5.

puede encontrar documentación y ejemplos de código en MSDN:

REST and POX

Algunos recursos para aprender RESTO:

+0

La plataforma de Windows ha estado apoyando el modelo REST desde que incorporaron la pila TCP/IP y el protocolo HTTP en los años 90. REST es un enfoque para resolver un problema, no una biblioteca o marco que conectas y todo sucede mágicamente. –

+0

Darrel Miller, debe leer detenidamente las preguntas. El usuario preguntó sobre el soporte de REST en .NET – aku

+0

Lo siento, me distrajo el uso de un mazo para romper una nuez. HttpListener y HttpWebRequest son más que suficientes para admitir REST. .Net 2.0 es bastante capaz. –

7

La mejor introducción que he leído es RESTful Web Services book, que va más allá de explicar el modelo y los principios y muestra realmente cómo diseñar un servicio web RESTful. Lo más útil es su lista de comprobación de cómo escribir/especificar una API REST:

  1. Calcule el conjunto de datos [es decir especifica el modelo de datos].
  2. Divida el conjunto de datos en recursos. Para cada tipo de recurso:
  3. Nombre los recursos con URI.
  4. Exponga un subconjunto de la interfaz uniforme [es decir especificar qué métodos HTTP se usan y qué hacen].
  5. Diseñe las representaciones aceptadas del cliente [p. el formato XML que puede PONER o PUBLICAR].
  6. Diseñe las representaciones que se brindan al cliente [p. el XML que recibes].
  7. Integre este recurso en los recursos existentes, utilizando enlaces y formularios de hipermedia.
  8. Considere el curso típico de eventos: ¿qué se supone que va a pasar? [Esto es como un escenario de éxito principal de caso de uso.]
  9. Considere las condiciones de error. [Esto es como escenarios de casos de uso de excepción.]
+0

Aunque se vuelve un poco redundante cerca del final, secundo la recomendación para este libro. Es muy útil para entender REST. –

3

Los artículos de la "RESTful Web" La línea en xml.com son una gran introducción.

El autor (Joe Gregorio, de la fama El protocolo de publicación Atom) también publica regularmente artículos interesantes sobre todas las cosas se durmió en los weblog. "RESTify DayTrader" (RESTO Arquitectura aplicada a una aplicación de negociación de valores de referencia) es un buen punto de partida. También me gusta "Why so many Python web frameworks?", que muestra la implementación de un pequeño marco web relajante en Python.

1

Cuando comencé a desarrollar servicios web REST, leí REST API Design Rulebook de Mark Masse. Una vez que conozca los conceptos básicos y la teoría, podrá implementar REST con WCF, HTTPListener o ServiceStack. Todos estos frameworks son .NET y bastante bien documentados ...

Recomendaría a usted service stack (http://www.servicestack.net/) hay suficiente información en la web para comenzar.

WCF ofrece la API web ASP.NET, está bien, pero no la uso.

En cualquier caso, hoy no existe un buen marco REST, debe elegir uno que le resulte fácil de usar y luego aplicar la teoría que aprendió del libro.