¿Cómo alojar REST webservices en Android?

¿Alguien sabe un servidor web de código abierto, escrito en Java, capaz de recibir servicios REST en Android?

Estoy inclinado hacia https://github.com/NanoHttpd/nanohttpd , pero requeriría escribir el marco de servicios Web desde cero.

PD. Websockets sería una ventaja. Ps2. Estoy buscando una solución de hosting no un cliente y el dispositivo es bastante poderoso.

Enfrentando un problema similar, optamos por ir con AndroidAsync de Koush:

https://github.com/koush/AndroidAsync

Este es un proyecto muy práctico para una variedad de razones. Además de soportar websockets puedes, en pocas líneas, implementar un controlador POST o GET básico y pasar JSON alrededor del cual es el tipo de todo lo que necesitábamos. Ejemplo de esa página github (soporta POST de la misma manera):

AsyncHttpServer server = new AsyncHttpServer(); List<WebSocket> _sockets = new ArrayList<WebSocket>(); server.get("/", new HttpServerRequestCallback() { @Override public void onRequest(AsyncHttpServerRequest request, AsyncHttpServerResponse response) { response.send("Hello!!!"); } }); // listen on port 5000 server.listen(5000); // browsing http://localhost:5000 will return Hello!!! 

Hay muchos muchos servidores HTTP de terceros para Android. Además, desde que el API de nivel 1 Android ha tenido HttpService: http://developer.android.com/reference/org/apache/http/protocol/HttpService.html incorporado.

Cualquier servidor HTTP es "capaz de" REST.

Si quieres decir que quieres un framework REST de servidor para Android (ala JAX-RS o Restlet o tal) entonces eso es un prospecto diferente y no estoy familiarizado con uno que saldrá de la caja en Android (aunque probablemente existan) . La razón de ello es que normalmente no ejecuta el servidor HTTP en un dispositivo móvil. Sí, se puede, y en ocasiones es útil, pero no es un requisito común.

En cuanto a websockets, que es una pregunta totalmente diferente, y no tiene nada que ver con REST (por lo que es confuso?). También hay muchos impls websocket para Android (koush's, por ejemplo: https://github.com/koush/android-websockets ).

Si su intención en el alojamiento de su webservices desde el dispositivo Android. Es un caso inusual, pero el marco de restlet tiene un componente de servidor que se ejecuta en android. Realizar el pedido http://restlet.org/learn/guide/2.2/editions/android/ .

No requiere un servidor web separado y es bastante pobre. No lo he probado como un servidor androide personalmente, así que no puedo dar fe de lo bien que funciona allí, pero lo he utilizado independiente y en appengine.

Deberías salirse con la suya como si sólo estuvieras envolviendo código debajo de un servicio de Android

 Component serverComponent = new Component(); serverComponent.getServers().add(Protocol.HTTP, 8080); final Router router = new Router(serverComponent.getContext().createChildContext()); router.attach("/myrestendpoint", MyServerResource.class); serverComponent.getDefaultHost().attach(router); serverComponent.start(); 
  • Subir imagen a vk.com
  • 500 Error interno del servidor para GET en www.googleapis.com/androidpublisher/v1/
  • Youtube API v3 buscar videos, recuperar el título y url
  • Google mapa v2 o v3?
  • Uso de atributos desde el nivel API más allá de minSdkVersion
  • Cómo abrir archivos de MS Office en Android
  • Nuevo Texto Seleccionable en el componente android 3 (API <= 11)
  • Vista previa de la cámara Android extraña
  • Canvas.drawVertices (...) no dibuja nada
  • Android Geofencing error API con GPS?
  • Problema de exactitud de Google maps
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.