lang:java:rest
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
lang:java:rest [2017/01/09 00:04] – Ajout de quelques exemples (upload, download) root | lang:java:rest [2020/04/27 11:48] (Version actuelle) – maff -> html root | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
Dans l' | Dans l' | ||
- | Attention, j'ai eu personnellement beaucoup de mal à faire fonctionner REST sur Eclipse. On pense que tout est bien configurer | + | Attention, j'ai eu personnellement beaucoup de mal à faire fonctionner REST sur Eclipse. On pense que tout est bien configuré |
J'ai réussi plusieurs fois à faire fonctionner REST sans que '' | J'ai réussi plusieurs fois à faire fonctionner REST sans que '' | ||
Ligne 43: | Ligne 43: | ||
// Méthode GET | // Méthode GET | ||
@GET | @GET | ||
- | // Requête XML | + | // Mime Type en sortie |
@Produces(MediaType.APPLICATION_XML) | @Produces(MediaType.APPLICATION_XML) | ||
- | // Requête XML | + | // Mime Type en entrée |
@Consumes(MediaType.APPLICATION_XML) | @Consumes(MediaType.APPLICATION_XML) | ||
// On dit que le f est extrait du path et que c'est un double. | // On dit que le f est extrait du path et que c'est un double. | ||
Ligne 114: | Ligne 114: | ||
} | } | ||
</ | </ | ||
+ | Utilisation d'un Bean pour architecturer ces données | ||
+ | <code java> | ||
+ | public class MyBeanParam { | ||
+ | @PathParam(" | ||
+ | private String pathParam; | ||
+ | |||
+ | @MatrixParam(" | ||
+ | @Encoded | ||
+ | @DefaultValue(" | ||
+ | private String matrixParam; | ||
+ | |||
+ | @HeaderParam(" | ||
+ | private String headerParam; | ||
+ | |||
+ | private String queryParam; | ||
+ | |||
+ | public MyBeanParam(@QueryParam(" | ||
+ | this.queryParam = queryParam; | ||
+ | } | ||
+ | |||
+ | public String getPathParam() { | ||
+ | return pathParam; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | @POST | ||
+ | public void post(@BeanParam MyBeanParam beanParam, String entity) { | ||
+ | final String pathParam = beanParam.getPathParam(); | ||
+ | ... | ||
+ | } | ||
+ | </ | ||
+ | [[https:// | ||
<file html web.xml> | <file html web.xml> | ||
<?xml version=" | <?xml version=" | ||
- | <web-app xmlns: | + | <web-app xmlns: |
+ | | ||
< | < | ||
< | < | ||
Ligne 143: | Ligne 179: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | ====Exemple de client==== | ||
+ | <code java> | ||
+ | import java.net.URI; | ||
+ | |||
+ | import javax.ws.rs.client.Client; | ||
+ | import javax.ws.rs.client.ClientBuilder; | ||
+ | import javax.ws.rs.client.WebTarget; | ||
+ | import javax.ws.rs.core.MediaType; | ||
+ | import javax.ws.rs.core.Response; | ||
+ | |||
+ | public class ClientJersey { | ||
+ | public static void delete() { | ||
+ | String url = " | ||
+ | URI uri = URI.create(url); | ||
+ | |||
+ | final Client client = ClientBuilder.newClient(); | ||
+ | WebTarget webTarget = client.target(uri); | ||
+ | |||
+ | Response response = webTarget.request().delete(); | ||
+ | |||
+ | if (response.getStatus() != 200) { | ||
+ | throw new RuntimeException(" | ||
+ | } | ||
+ | |||
+ | System.out.println(" | ||
+ | } | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | try { | ||
+ | delete(); | ||
+ | |||
+ | String url = " | ||
+ | URI uri = URI.create(url); | ||
+ | |||
+ | final Client client = ClientBuilder.newClient(); | ||
+ | WebTarget webTarget = client.target(uri); | ||
+ | |||
+ | Response response = webTarget.request(MediaType.APPLICATION_XML).get(); | ||
+ | |||
+ | if (response.getStatus() != 200) { | ||
+ | throw new RuntimeException(" | ||
+ | } | ||
+ | |||
+ | String output = response.readEntity(String.class); | ||
+ | |||
+ | System.out.println(" | ||
+ | System.out.println(output); | ||
+ | } catch (Exception e) { | ||
+ | e.printStackTrace(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
=====Erreurs===== | =====Erreurs===== |
lang/java/rest.1483916687.txt.gz · Dernière modification : 2017/01/09 00:04 de root