คำถามติดแท็ก jax-rs

JAX-RS: Java API สำหรับ RESTful Web Services เป็น API ที่ให้การสนับสนุนในการสร้างบริการเว็บตามรูปแบบสถาปัตยกรรม REST

2
แนวปฏิบัติที่เหมาะสมที่สุดสำหรับการพิสูจน์ตัวตนโทเค็น REST ด้วย JAX-RS และ Jersey
ฉันกำลังมองหาวิธีการเปิดใช้งานการรับรองความถูกต้องใช้โทเค็นในเจอร์ซีย์ ฉันพยายามไม่ใช้เฟรมเวิร์กเฉพาะใด ๆ เป็นไปได้ไหม แผนของฉันคือ: ผู้ใช้สมัครใช้บริการเว็บของฉันบริการเว็บของฉันสร้างโทเค็นส่งไปยังลูกค้าและลูกค้าจะเก็บไว้ จากนั้นลูกค้าสำหรับแต่ละคำขอจะส่งโทเค็นแทนชื่อผู้ใช้และรหัสผ่าน ฉันคิดว่าจะใช้ตัวกรองที่กำหนดเองสำหรับแต่ละคำขอ@PreAuthorize("hasRole('ROLE')") แต่ฉันคิดว่านี่เป็นสาเหตุทำให้มีคำขอจำนวนมากไปยังฐานข้อมูลเพื่อตรวจสอบว่าโทเค็นนั้นถูกต้องหรือไม่ หรือไม่สร้างตัวกรองและในแต่ละคำขอจะใส่โทเค็นพารามิเตอร์หรือไม่ เพื่อให้แต่ละ API ตรวจสอบโทเค็นก่อนและหลังจากดำเนินการบางอย่างเพื่อดึงทรัพยากร

13
เมื่อใดที่จะใช้ @QueryParam vs @PathParam
ฉันไม่ได้ถามคำถามที่ถามไว้แล้วที่นี่: อะไรคือความแตกต่างระหว่าง @PathParam และ @QueryParam นี่คือ "แนวปฏิบัติที่ดีที่สุด" หรือคำถามการประชุม เมื่อคุณจะใช้VS@PathParam@QueryParam สิ่งที่ฉันคิดได้ว่าการตัดสินใจอาจใช้ทั้งสองอย่างเพื่อแยกความแตกต่างของรูปแบบข้อมูล ให้ฉันอธิบายด้านล่าง LTPO ของฉัน - น้อยกว่าการสังเกตที่สมบูรณ์ การใช้ PathParam สามารถสำรองไว้สำหรับหมวดหมู่ข้อมูลซึ่งจะตกอยู่ในสาขาของแผนภูมิข้อมูล PathParam สามารถใช้ในการเจาะลึกไปยังลำดับชั้นของเอนทิตี ในขณะที่ QueryParam อาจถูกสงวนไว้สำหรับการระบุแอตทริบิวต์เพื่อค้นหาอินสแตนซ์ของคลาส ตัวอย่างเช่น, /Vehicle/Car?registration=123 /House/Colonial?region=newengland /category?instance @GET @Path("/employee/{dept}") Patient getEmployee(@PathParam("dept")Long dept, @QueryParam("id")Long id) ; VS /category/instance @GET @Path("/employee/{dept}/{id}") Patient getEmployee(@PathParam("dept")Long dept, @PathParam("id")Long id) ; VS ?category+instance @GET @Path("/employee") Patient …
276 java  rest  jax-rs 

4
รหัสการตอบกลับ REST สำหรับข้อมูลที่ไม่ถูกต้อง
ควรส่งรหัสตอบสนองอะไรให้กับลูกค้าในกรณีที่เกิดสถานการณ์ต่อไปนี้ ข้อมูลที่ส่งผ่านไม่ถูกต้องขณะลงทะเบียนผู้ใช้เช่นรูปแบบอีเมลที่ไม่ถูกต้อง ชื่อผู้ใช้ / อีเมลนี้มีอยู่แล้ว ฉันเลือก 403 ฉันยังพบว่าฉันรู้สึกว่าสามารถใช้งานได้ วิกิพีเดีย: 412 เงื่อนไขเบื้องต้นล้มเหลว: เซิร์ฟเวอร์ไม่เป็นไปตามเงื่อนไขข้อใดข้อหนึ่งที่ผู้ร้องขอร้องขอ แนะนำรหัสถ้าฉันควรใช้นอกเหนือจาก 403
272 http  rest  jax-rs 

14
JAX-RS - วิธีคืนรหัสสถานะ JSON และ HTTP ด้วยกันได้อย่างไร
ฉันกำลังเขียนแอปเว็บ REST (NetBeans 6.9, JAX-RS, TopLink Essentials) และพยายามส่งคืนรหัสสถานะJSON และ HTTP ฉันมีโค้ดที่พร้อมใช้งานและส่งคืน JSON เมื่อเมธอด HTTP GET ถูกเรียกใช้จากไคลเอ็นต์ เป็นหลัก: @Path("get/id") @GET @Produces("application/json") public M_機械 getMachineToUpdate(@PathParam("id") String id) { // some code to return JSON ... return myJson; } แต่ผมยังต้องการที่จะกลับรหัสสถานะ HTTP (500, 200, 204, ฯลฯ ) พร้อมกับข้อมูล JSON ฉันพยายามใช้HttpServletResponse: response.sendError("error message", 500); แต่สิ่งนี้ทำให้เบราว์เซอร์คิดว่าเป็น …

11
JAX-RS / Jersey วิธีการจัดการข้อผิดพลาดที่กำหนดเอง?
ฉันกำลังเรียนรู้ JAX-RS (aka, JSR-311) โดยใช้ Jersey ฉันสร้างทรัพยากรรูทสำเร็จแล้วและกำลังเล่นกับพารามิเตอร์: @Path("/hello") public class HelloWorldResource { @GET @Produces("text/html") public String get( @QueryParam("name") String name, @QueryParam("birthDate") Date birthDate) { // Return a greeting with the name and age } } วิธีนี้ใช้งานได้ดีและจัดการรูปแบบใด ๆ ในสถานที่ปัจจุบันซึ่งเป็นที่เข้าใจกันโดยตัวสร้าง Date (String) (เช่น YYYY / mm / dd และ mm / dd …

3
พารามิเตอร์เมทริกซ์ URL เทียบกับพารามิเตอร์การสืบค้น
ฉันสงสัยว่าจะใช้เมทริกซ์หรือพารามิเตอร์การสืบค้นใน URL ของฉันหรือไม่ ฉันพบการสนทนาที่เก่ากว่าในหัวข้อนั้นไม่พอใจ ตัวอย่าง URL ที่มีพารามิเตอร์การสืบค้น: http: //some.where/thing? paramA = 1 & paramB = 6542 URL ที่มีพาราเมตริกซ์: http: //some.where/thing; paramA = 1; paramB = 6542 ตั้งแต่แรกพบเมทริกซ์ params ดูเหมือนจะมีข้อได้เปรียบเท่านั้น: อ่านได้มากขึ้น ไม่จำเป็นต้องเข้ารหัสและถอดรหัส "&" ในเอกสาร XML URL ด้วย "?" ไม่ถูกแคชในหลายกรณี URL ที่มีพารามิเตอร์พาราเมทริกถูกแคช พารามิเตอร์เมทริกซ์สามารถปรากฏได้ทุกที่ในเส้นทางและไม่ จำกัด เฉพาะจุดสิ้นสุด พารามิเตอร์เมทริกซ์สามารถมีได้มากกว่าหนึ่งค่า: paramA=val1,val2 แต่ก็มีข้อเสีย: กรอบงานเพียงไม่กี่อย่างเช่นJAX-RSรองรับพารามิเตอร์เมทริกซ์ เมื่อเบราว์เซอร์ส่งแบบฟอร์มผ่าน GET พารามิเตอร์จะกลายเป็นพารามิเตอร์แบบสอบถาม …
176 http  url  rest  parameters  jax-rs 

14
รูปแบบ Java 8 LocalDate Jackson
สำหรับjava.util.Dateเมื่อฉันทำ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy") private Date dateOfBirth; จากนั้นในคำขอ JSON เมื่อฉันส่ง { {"dateOfBirth":"01/01/2000"} } มันได้ผล. ฉันจะทำสิ่งนี้สำหรับฟิลด์LocalDate ของ Java 8 ได้อย่างไร ? ฉันพยายามมี @JsonDeserialize(using = LocalDateDeserializer.class) @JsonSerialize(using = LocalDateSerializer.class) private LocalDate dateOfBirth; มันไม่ได้ผล ใครช่วยบอกฉันหน่อยได้ไหมว่าวิธีที่ถูกต้องคืออะไร .. ด้านล่างนี้คือการอ้างอิง <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>jaxrs-api</artifactId> <version>3.0.9.Final</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> <version>2.4.2</version> </dependency> <dependency> <groupId>com.wordnik</groupId> <artifactId>swagger-annotations</artifactId> …
152 java  json  jackson  jax-rs  resteasy 

4
ความแตกต่างระหว่าง JAX-RS และ Spring Rest
ฉันสับสนกับความแตกต่างระหว่างJAX-RS (ดีอาจจะควรใช้ย์จะทำเปรียบเทียบตั้งแต่ JAX-RS เป็นข้อมูลจำเพาะแค่) และฤดูใบไม้ผลิสำหรับการให้บริการพักผ่อน ฉันพยายามค้นหาข้อมูลเพิ่มเติมทางออนไลน์และเกิดความสับสนมากขึ้น บริษัท ของฉันใช้ Spring MVC เพื่อพัฒนา Restful API ส่วนที่ทำให้เกิดความสับสนคือ JAX-RS ย่อมาจากJava API สำหรับ RESTful Web Servicesในฤดูใบไม้ผลิฉันยังใช้ java เพื่อพัฒนา RESTful Web Services ดังนั้นฉันจึงไม่ได้รับความแตกต่าง Spring เป็นไปตามข้อกำหนด JAX-RS หรือไม่ จากสิ่งที่ฉันรู้จนถึงตอนนี้: JAX-RS เป็นพิมพ์เขียว / ข้อกำหนดมี Jersey, RESTeasy และอื่น ๆ เป็นการนำไปใช้งาน

12
ไม่สามารถยกเลิกการกำหนดค่าอินสแตนซ์ของ java.util.ArrayList ออกจากโทเค็น START_OBJECT
ฉันกำลังพยายามโพสต์Listวัตถุที่กำหนดเอง JSON ของฉันในเนื้อหาคำขอคือ: { "collection": [ { "name": "Test order1", "detail": "ahk ks" }, { "name": "Test order2", "detail": "Fisteku" } ] } รหัสฝั่งเซิร์ฟเวอร์ที่จัดการคำขอ: import java.util.Collection; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @Path(value = "/rest/corder") public class COrderRestService { @POST @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public Response …

1
วิธีเข้าถึงพารามิเตอร์ในเมธอด RESTful POST
วิธีการโพสต์ของฉันมีลักษณะดังนี้: @POST @Consumes({"application/json"}) @Path("create/") public void create(String param1, String param2){ System.out.println("param1 = " + param1); System.out.println("param2 = " + param2); } เมื่อฉันสร้าง Jersey Client ใน Netbeans วิธีที่เรียกวิธีการโพสต์จะมีลักษณะดังนี้: public void create(Object requestEntity){ webResource.path("create").type(MediaType.APPLICATION_JSON).post(requestEntity); } เมื่อทำการทดสอบนี้: @Test public void hello(){ String json = "{param1=\"hello\",param2=\"hello2\"}"; this.client.create(json); } ให้ผลลัพธ์ต่อไปนี้ในเซิร์ฟเวอร์: INFO: param1 = {param1="hello",param2="hello2"} INFO: …

10
อินพุตและเอาต์พุตไบนารีสตรีมโดยใช้ JERSEY?
ฉันใช้ Jersey เพื่อใช้ RESTful API ที่ดึงและให้บริการข้อมูลที่เข้ารหัส JSON เป็นหลัก แต่ฉันมีสถานการณ์บางอย่างที่ฉันต้องทำสิ่งต่อไปนี้ให้สำเร็จ: ส่งออกเอกสารที่ดาวน์โหลดได้เช่น PDF, XLS, ZIP หรือไฟล์ไบนารีอื่น ๆ ดึงข้อมูลหลายส่วนเช่น JSON บางส่วนพร้อมไฟล์ XLS ที่อัปโหลด ฉันมีเว็บไคลเอนต์ที่ใช้ JQuery แบบหน้าเดียวที่สร้างการเรียก AJAX ไปยังบริการเว็บนี้ ในขณะนี้ยังไม่ทำการส่งแบบฟอร์มและใช้ GET และ POST (ด้วยออบเจ็กต์ JSON) ฉันควรใช้แบบฟอร์มโพสต์เพื่อส่งข้อมูลและไฟล์ไบนารีที่แนบมาหรือฉันสามารถสร้างคำขอหลายส่วนด้วยไฟล์ไบนารี JSON บวกได้หรือไม่ ปัจจุบันชั้นบริการของแอปพลิเคชันของฉันสร้าง ByteArrayOutputStream เมื่อสร้างไฟล์ PDF วิธีใดเป็นวิธีที่ดีที่สุดในการส่งกระแสข้อมูลนี้ไปยังลูกค้าผ่าน Jersey ฉันได้สร้าง MessageBodyWriter แล้ว แต่ฉันไม่รู้วิธีใช้จากแหล่งข้อมูล Jersey เป็นแนวทางที่ถูกต้องหรือไม่? ฉันได้ดูตัวอย่างที่มาพร้อมกับเจอร์ซีย์แล้ว แต่ยังไม่พบอะไรเลยที่แสดงให้เห็นถึงวิธีการทำสิ่งเหล่านี้ ถ้าเป็นเรื่องสำคัญฉันใช้ Jersey …
111 java  jersey  jax-rs 

3
Provider ใน JAX-RS หมายถึงอะไร
ใครช่วยอธิบายให้ฉันฟังได้ไหมว่าผู้ให้บริการ JAX-RS คืออะไรและคำอธิบายประกอบ "@Provider" ทำอะไร ฉันอ่านเอกสารประกอบ แต่ไม่สามารถอ่านได้ หากมีคลาสทรัพยากรที่ให้บริการคำขอที่เข้ามาผู้ให้บริการจะทำอย่างไร พวกเขาแตกต่างจากคลาสทรัพยากรเดี่ยวอย่างไรเมื่อฉันสร้างคลาสทรัพยากรถาวร (คลาสที่ไม่ใช่ตามคำขอ) หรือชั้นเรียนเหล่านั้นเป็นผู้ให้บริการด้วย?
110 java  jersey  jax-rs 


5
อะไรคือความแตกต่างระหว่าง Jersey vs Jax-rs
ฉันไม่เข้าใจเลยว่าจริงๆแล้วเสื้อคืออะไร .. สิ่งที่ฉันรู้ก็คือ Jax-RS เป็น API สำหรับสร้างบริการเว็บ REST และเจอร์ซี? ฉันได้รับข้อมูลบางอย่างและทุกคนก็พูดเหมือนกันว่า "เสื้อคือการนำ Jax-RS มาใช้" แต่มันหมายความว่าอย่างไร? ถ้า jax-rs เป็น API ทำไมเราต้องใช้เจอร์ซีย์เพื่อสร้างบริการเว็บที่เหลือ? เจอร์ซีย์เป็น libs อีกสองสามตัวที่จะเล็งกับ jax-rs หรือไม่? ถ้าใช่ jax-rs เป็น API ที่ไม่สมบูรณ์?
95 java  jersey  jax-rs 

5
JAX-RS และ JAX-WS ต่างกันอย่างไร
หลังจากอ่านบทความเกี่ยวกับ JAX-RS และ JAX-WS แล้วฉันมีคำถามสองสามข้อที่ต้องการยืนยัน? JAX-RS สามารถทำ Asynchronous Request เช่น JAX-WS ได้หรือไม่? JAX-RS สามารถเข้าถึงบริการเว็บที่ไม่ได้ทำงานบนแพลตฟอร์ม Java และในทางกลับกันได้หรือไม่? "REST มีประโยชน์อย่างยิ่งสำหรับอุปกรณ์ที่มีโปรไฟล์ จำกัด เช่นพีดีเอและโทรศัพท์มือถือ" หมายความว่าอย่างไร หมายความว่าอย่างไรโดย "JAX-RS ไม่ต้องการข้อความ XML หรือคำจำกัดความของบริการ WSDL - API?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.