jrxxjr commented on a change in pull request #785:
URL: https://github.com/apache/tomee/pull/785#discussion_r617095560



##########
File path: examples/rest-xml-json/README_es.adoc
##########
@@ -0,0 +1,404 @@
+:index-group: Unrevised
+:jbake-type: page
+:jbake-status: status=published
+= REST Simple 
+
+Definir un servicio REST es bastante fácil, simplemente agregue la anotación 
@Path a una
+clase luego defina en los métodos el método HTTP a usar (@GET, @POST, …).
+
+El Código
+
+== El servicio REST: @Path, @Produces, @Consumes
+
+Aquí vemos un bean que usa las anotaciones @Path, @Produces y @Consumes.
+La anotación @Path identifica la plantilla de ruta de URI a la que responde el 
recurso y se especifica en el nivel de clase de un recurso.
+El valor de la anotación @Path
+es una plantilla de ruta de URI parcial relativa al URI base del servidor en 
el que se implementa el recurso, la raíz de contexto del WAR y el patrón de URL 
al que
+responde el servlet auxiliar de Jersey.
+La anotación @Produces se utiliza para especificar los tipos de medios MIME o 
las representaciones que un recurso puede producir y enviar al cliente.
+Si @Produces se aplica en
+el nivel de clase, todos los métodos de un recurso pueden producir los tipos 
MIME especificados de forma predeterminada. Si se aplica a nivel de método, 
sobrescribir cualquier @Produces
+anotaciones aplicadas a nivel de clase.
+La anotación @Consumes se utiliza para especificar qué tipos de 
representaciones de medios MIME puede aceptar o consumir un recurso del cliente.
+Si se aplica @Consumes
+a nivel de clase, todos los métodos de respuesta aceptan los tipos MIME 
especificados de forma predeterminada. Si @Consumes se aplica a nivel de 
método, anula cualquier @Consumes
+anotaciones aplicadas a nivel de clase.
+
+En realidad líneas:
+
+[source,java]
+----
+@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
+@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
+----
+
+son opcionales ya que es la configuración predeterminada. Y estas líneas pueden
+configurarse también por método si necesita ser más preciso.
+
+[source,java]
+----
+@Path("/greeting")
+@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
+@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
+public class GreetingService {
+    @GET
+    public Response message() {
+        return new Response("Hi REST!");
+    }
+
+    @POST
+    public Response lowerCase(final Request message) {
+        return new Response(message.getValue().toLowerCase());
+    }
+}
+----
+
+== Pruebas
+
+=== Prueba del servicio JAXRS
+
+La prueba usa el ApplicationComposer de OpenEJB para hacerlo trivial.
+
+La idea es primero activar los servicios jaxrs. Esto se hace usando
+Anotación @EnableServices.
+
+Luego creamos sobre la marcha la aplicación simplemente devolviendo un objeto
+que representa el web.xml. Aquí simplemente lo usamos para definir el contexto
+root, pero también puede usarlo para definir su aplicación REST. Y para
+completa la definición de la aplicación agregamos la anotación @Classes para 
definir
+el conjunto de clases que se utilizarán en esta aplicación.
+
+Finalmente para probarlo usamos la API del cliente cxf para llamar al servicio 
REST en
+métodos get() y post().
+
+Nota al margen: para mostrar que usamos JSON o XML según el método de prueba 
que
+activado en EnableServices el atributo httpDebug que imprime el
+mensajes http en los registros.
+
+[source,java]
+----
+package org.superbiz.rest;
+
+import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.openejb.jee.WebApp;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.junit.Classes;
+import org.apache.openejb.testing.EnableServices;
+import org.apache.openejb.testing.Module;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.ws.rs.core.MediaType;
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+
+@EnableServices(value = "jaxrs", httpDebug = true)
+@RunWith(ApplicationComposer.class)
+public class GreetingServiceTest {
+    @Module
+    @Classes(GreetingService.class)
+    public WebApp app() {
+        return new WebApp().contextRoot("test");
+    }
+
+    @Test
+    public void getXml() throws IOException {
+        final String message = 
WebClient.create("http://localhost:4204";).path("/test/greeting/")
+                .accept(MediaType.APPLICATION_XML_TYPE)
+                .get(Response.class).getValue();
+        assertEquals("Hi REST!", message);
+    }
+
+    @Test
+    public void postXml() throws IOException {
+        final String message = 
WebClient.create("http://localhost:4204";).path("/test/greeting/")
+                .accept(MediaType.APPLICATION_XML_TYPE)
+                .post(new Request("Hi REST!"), Response.class).getValue();
+        assertEquals("hi rest!", message);
+    }
+
+    @Test
+    public void getJson() throws IOException {
+        final String message = 
WebClient.create("http://localhost:4204";).path("/test/greeting/")
+                .accept(MediaType.APPLICATION_JSON_TYPE)
+                .get(Response.class).getValue();
+        assertEquals("Hi REST!", message);
+    }
+
+    @Test
+    public void postJson() throws IOException {
+        final String message = 
WebClient.create("http://localhost:4204";).path("/test/greeting/")
+                .accept(MediaType.APPLICATION_JSON_TYPE)
+                .post(new Request("Hi REST!"), Response.class).getValue();
+        assertEquals("hi rest!", message);
+    }
+}
+----
+
+#Running
+
+Ejecutar el ejemplo es bastante simple. En el directorio ``rest-xml-json''

Review comment:
       The correction it is maked.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to