บทนำ (Overview)
จากบทความที่แล้วนำเสนอเกี่ยวกับการใช้งาน @Context กับ “UriInfo” ที่ใช้รับข้อมูลลักษณะ 1 “Parameter” 1 ค่า (How to create RESTful Web service with Netbeans – Context UriInfo) ในบทความนี้เราจะนำเสนอ “List” ที่ใช้จัดเก็บข้อมูลในรูปของการอ้างถึงสืบทอดมาจาก “Collection” จากชนิดต่าง ๆ เช่น “ArrayList” หรือ “LinkedList” โดย “List” มีลักษณะของข้อมูลคือ [data1, data2, data3, dataN] โดยข้อมูลใน “List” อาจซ้ำกันก็ได้ แต่ที่สำคัญคือลำดับของข้อมูลมีความสำคัญ
ขั้นตอน (Steps)
- ก่อนอื่นเริ่มต้นต้องเพิ่มคำสั่งดังนี้
import javax.ws.rs.core.Context; import javax.ws.rs.core.UriInfo; import java.util.List;
- จากนั้นเราสามารถเรียกใช้งาน “@Context” และ “UriInfo” ดังนี้
@Context UriInfo tmpInfo
- ข้อมูล “tmpInfo” ที่เราได้รับมา เราสามารถสร้างเป็น “List” ได้ดังนี้
@GET @Path("/") public String checkSecretAnswer(@Context UriInfo tmpInfo) { List<String> tmpAns = tmpInfo.getQueryParameters().get("answer"); return "Secret Answer: " + tmpAns ; }
- ทดสอบ “RESTful Web Servers” ได้ดังนี้
- จากตัวอย่างจะเห็นได้ว่าสามารถรับข้อมูลหลาย ๆ “Parameter” ที่ชื่อซ้ำกันมาสร้างเป็น “List” โดยความสำคัญจะอยู่ที่ลำดับของข้อมูล
- เราสามารถสรุป “Source-code” ได้ดังนี้
package helloworld; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.core.Context; import javax.ws.rs.core.UriInfo; import java.util.List; @Path("Login") public class LoginResource { @GET @Path("/") public String checkSecretAnswer(@Context UriInfo tmpInfo) { List<String> tmpAns = tmpInfo.getQueryParameters().get("answer"); return "Secret Answer: " + tmpAns ; } }