[Java] REST รู้จัก consumes, produces และทำให้ method รองรับหลาย mediatype
![Image](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjh_h7PHRNboJnaxZiGABHJyD4tWu7LW753NlIS5oQsQ1VG2X8fw-_jYs1kPhLDx6MXDv5Z1ruNJFyXFlIUWELQVEmEbigVQPmDr1blNcR3I_l1E3nGx6amZ3akpkvN9cWU0pqbR1jngE/s400/Picture1.png)
อีกเรื่องสำหรับการเขียน REST web services แต่ครั้งนี้ เราจะว่ากันด้วยลูกเล่นต่างๆ ที่เราสามารถประยุกต์ใช้เพิ่มเติม เจ้าตัวเหลือง เปรียบเสมือน web service ของเรา @Consumes และ @Produces เป็นการกำหนด MediaType ให้กับ method web service แต่ละตัว โดยทั้ง 2 ตัวนี้มีข้อแตกต่างคือทิศทางการเรียกใช้งาน คือ @Consumes ใช้สำหรับ request และ @Produces ใช้สำหรับ response @POST @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public Appdata create(Appdata entity) { System.out.println("POST:"+entity); return entity; } @XmlRootElement public class Appdata { private Integer orderId; private String orderDate; private List items; /* (setter/getter) */ } ตัวอย่างที่ผ่านมาหลายตัวเรามักจะเห็น MediaType มีแค่ชนิดเดียว แต่ในความจริงแล้วเราสามารถเปิดให้กำหนดหลายตัวได้โดยกำหนดในลักษณะ array ตัวอย่างนี้ก็รองรับ XML และ JSON ขึ้นอยู่กับการเรียกใช้งานจาก client Request Header ที่เราจะต้องกำหนดเพื