# TP7 #### Nom: `LAFIA-MONWOO David` ## Ecriture d'un serveur chat - Complétion du tableau de façon a indiquer les méthodes de façon cohérente. :::info |URL |Type de requête| Description | | ------------------ |:------------- |:-------------------------- | |/messages | GET | avoir la liste des messages| |/messages/after/{id}| GET | avoir les messages compris entre {id} et le dernier message du serveur| |/messages | POST |ajouter un message. Le message envoyé n'a pas d'id ni de date. C'est le serveur qui les initialise.| |/messages/{id} | GET | avoir le message d'ID {id} | |/messages/{id} | DELETE | effacer le message d'ID {id}| ::: - Lancement du service et teste qu'il fonctionne en consultant les pages : :::info ![](https://i.imgur.com/CWh864a.png) ::: :::info ![](https://i.imgur.com/dxyWB5p.png) ::: :::info ![](https://i.imgur.com/gPwCBAD.png) ::: - Les commandes curl permettant : :::info -- d'ajouter un message : curl -X POST -H 'Content-Type: application/json' -i 'http://localhost:8080/pr.tp.services/api/messages' --data '{"content": "bonjour tous le monde"}' ![](https://i.imgur.com/ndznZm1.png) ::: :::info -- de consulter le nouveau message : curl -X GET -H 'Content-Type: application/json' -i 'http://localhost:8080/pr.tp.services/api/messages/3' ![](https://i.imgur.com/oOgVXaE.png) ::: :::info -- de l'effacer : curl -X DELETE -i 'http://localhost:8080/pr.tp.services/api/messages/3' ![](https://i.imgur.com/hRmF9oU.png) ::: ## Test en Java - classe de test : ```java= package test; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.Entity; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.xml.bind.annotation.XmlRootElement; public class TestApi { public static final String URL = "http://localhost:8080/pr.tp.services/api"; @XmlRootElement(name="message") public static class ChatMessage { public Long id; public String content; public String date; @Override public String toString() { return id + ":" + content+ " at "+ date; } } public static void main(String[] args) { Client client = ClientBuilder.newClient(); //Post a message : ChatMessage m = new ChatMessage(); m.content="test"; Response response = client.target(URL).path("messages").request(MediaType.APPLICATION_JSON_TYPE).post(Entity.entity(m, MediaType.APPLICATION_XML)); System.out.println("Response "+ response.getStatus()); //Get all the messages ChatMessage[] messages = client.target(URL).path("messages").request(MediaType.APPLICATION_JSON_TYPE).get(ChatMessage[].class); for (ChatMessage chatMessage : messages) { System.out.println(chatMessage); } // Get a message ChatMessage message = client.target(URL).path("messages/4").request(MediaType.APPLICATION_JSON_TYPE).get(ChatMessage.class); System.out.println(message); // Get all the messages after a message (id) ChatMessage[] messagesAfter = client.target(URL).path("messages/after/1").request(MediaType.APPLICATION_JSON_TYPE).get(ChatMessage[].class); for (ChatMessage chatMessage : messagesAfter) { System.out.println(chatMessage); } // Delete a message Response responseDelete = client.target(URL).path("messages/4").request(MediaType.APPLICATION_JSON_TYPE).delete(); System.out.println("Response "+ responseDelete.getStatus()); } } ``` ## Client du chat avec Javascript - Test :::info ![](https://i.imgur.com/7KRxoza.png) ::: ## Ecriture du client en JAVA Nouveau projet(voir pr.tp.new) effectué pour le client java (chat en console) mais il y a un warning lors de l'écriture du premier message :::info ![](https://i.imgur.com/jHaxTmj.png) :::