2009-03-12 11 views
11

Me pregunto cuántas personas que usan la pila de desarrollo de Microsoft (IIS y/o ASP.NET) están realmente utilizando REST? Si es así, ¿qué formas de descanso se están utilizando?DESCANSO en IIS

REST se puede categorizar un trillón de maneras, pero para el propósito de esta pregunta voy a clasificar de la siguiente manera:

  1. radicalmente DESCANSO: El uso de todos los métodos HTTP PUT/POST/GET/BORRAR
  2. Moderado DESCANSO: el uso de GET/POST
  3. RESTO híbrido: Utiliza sólo el GET o POST HTTP método, pero sigue principios REST de direccionamiento de y el estado.

En una clase que estoy enseñando, hemos estado tratando de implementar un servicio "radicalmente RESTful" en IIS, pero hemos tenido dificultades para implementar el método PUT. No parece haber mucho alboroto en la implementación de PUT en IIS, así que me pregunto cuántas personas están usando realmente REST completo. ¿Estás usando REST?

+0

La implementación de un verbo http put no suena particularmente vanguardista. Asumiría que si agregara un manejador de http, vería que ingresan solicitudes. – tarn

+0

¿Sabía que IIS tiene poco que ver con ASP.NET en estos días? Pareces equiparar los dos. –

+0

El objetivo de mi pregunta fue que estoy interesado en lo que hacen las personas que usan las tecnologías de Microsoft. Reformulado para que tenga más sentido. – Jeff

Respuesta

8

Creo que parte de la razón de la falta de rumores en torno a descansar sobre la pila de IIS ha sido la adopción inicial de Microsoft de SOAP como el camino, la verdad y la luz cuando se trataba de servicios web - especialmente con Windows Communication Foundation siendo en gran medida de SOAP enfocado

Pasaron a lanzar el WCF REST Starter Kit, para continuar desde el lanzamiento de .NET 3.5, y también los servicios de datos ADO.NET que son parte de .NET 3.5 SP1.

Como Magnus points out, Microsoft ha lanzado desde entonces el ASP.NET Web API que se basa en las características de la plataforma ASP.NET MVC para proporcionar un enfoque unificado a los servicios RESTful en IIS.

ASP.NET Web API es un marco que facilita la creación de servicios HTTP que lleguen a una amplia gama de clientes, incluidos navegadores y dispositivos móviles. ASP.NET Web API es una plataforma ideal para compilar aplicaciones RESTful en .NET Framework.

1

¿Qué versión de IIS? En IIS6, necesita habilitar WebDAV para permitir que las solicitudes PUSH pasen (no, no creo que tenga mucho sentido tampoco :-)). Sin embargo, no creo que ese sea el caso en IIS7.

+0

Servidores IIS 7 en 2008 – Jeff

+0

de forma predeterminada IIS 7 rechaza las solicitudes PUT. – Jeff

2

Estoy bastante seguro de que el ADO.NET Data Services Microsoft utiliza los servicios REST. Vale la pena echarle un vistazo ... además de ser tranquilo, es una tecnología realmente genial.

He aquí un extracto de un libro blanco sobre el mismo:

El objetivo de Microsoft ADO.NET Data Services es permitir a las aplicaciones para exponer datos como un servicio de datos que puede ser consumido por los clientes web dentro de la empresa redes y en internet. Se puede acceder a un servicio de datos a través de solicitudes HTTP regulares, utilizando verbos HTTP estándar como GET, POST, PUT y DELETE para realizar operaciones CRUD contra el servicio. El formato de carga útil utilizado por el servicio es controlable por la aplicación, pero todas las opciones son formatos simples y abiertos, como JSON y Atom/APP.

Aquí hay una white paper y es home page (al menos lo que pienso es que es página principal)

HTHS, Charles

3

Depende de cómo se enfoque.

De manera predeterminada, IIS limitará los verbos a las páginas ASP.NET a GET, HEAD, POST y DEBUG. Por supuesto, puede indicarle que acepte PUT editando la asignación del controlador. Suponiendo que quería su propia extensión que harías algo así como

<httpHandlers> 
    <add path="*.example" type="System.Web.UI.PageHandlerFactory" verb="GET, HEAD, POST, PUT, DELETE, DEBUG"/> 
</httpHandlers> 

Si desea volver a asignar .aspx que, por supuesto, puede de la misma manera, suponiendo que el servidor está configurado para permitir que usted/

1

Estoy usando la clase .Net, HttpListener, que es el motor de servidor web IIS (http.sys) sin las herramientas de administración de IIS. Estoy manejando todos los verbos HTTP.Puede agregar adjuntar el tiempo de ejecución ASP.Net a esto si lo desea, pero no es necesario.

De hecho, en algunos casos implementamos una versión de PATCH como un experimento. Una vez que llegue a lo básico, el verbo es simplemente una cadena en uno de los encabezados HTTP.

En realidad, no se puede categorizar REST en un trillón de maneras. Puede haber maneras de usar HTTP para crear aplicaciones distribuidas, pero solo existe la definición one de REST.

11

estoy involucrado en un proyecto que utiliza WCF REST en IIS, pero por supuesto que lo recomiendo echar un vistazo al marco construí: OpenRasta es una pila de código abierto .NET que hace que la implementación de descanso muy más fácil.

Google es tu amigo. El sitio principal es http://trac.caffeine-it.com/openrasta.

3

El WCF Rest Toolkit mencionado en la respuesta de "Zhaph - Ben Duguid" ahora está en desuso.
Ahora se ha reemplazado con el WCF Web API project.

Cuestiones relacionadas