‘DAS - บริการ Domino REST’ และการรวม Spring มันเป็นเรื่องจริงเหรอ?

ฉันต้องการสร้างบริการ REST ของตัวเองบนโดมิโน ฉันได้ลองตัวอย่างจากแหล่ง ExtLib github - 'DAS - บริการ Domino REST' - com.ibm.domino.services.sample

http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Create_your_own_Domino_REST_service_using_DAS

ฉันไม่พบวิธีแทรกบริบทของตัวเองลงในทรัพยากร บริบทของฉันมีการเชื่อมต่อกับฐานข้อมูล Notes หลายอัน อาจมีอ็อบเจ็กต์อื่น ซึ่งฉันไม่ต้องการเริ่มต้นทุกครั้งที่ประมวลผลคำร้องขอ HTTP

อันที่จริงฉันใช้ Spring AppContext เพื่อจัดเก็บวัตถุบริบทและถั่วอื่น ๆ ที่ฉันต้องการ

ดังนั้นคำถามคือหากมีความเป็นไปได้ว่าจะฉีดวัตถุบางอย่าง (โดยเฉพาะ Spring AppContext) ลงในวัตถุ Resource ได้อย่างไร

ฉันมองหาสิ่งนี้:

SampleService.java

package com.ibm.domino.services.sample.resources;
...
public class SampleService extends RestService {

>> private ApplicationContext ctx = new ClassPathXmlApplicationContext(...);


public Set<Class<?>> getClasses() {
    Set<Class<?>> classes = new HashSet<Class<?>>();
    SAMPLE_SERVICE_LOGGER.getLogger().fine("Adding sample service resources."); // $NON-NLS-1$
    classes.add(RootResource.class);
    classes.add(ContactsListResource.class);

    return classes;
}
...

RootResource.java

package com.ibm.domino.services.sample.resources;
...
@Path("sample") // $NON-NLS-1$
public class RootResource {

>> @Inject / @Autowired
>> private ApplicationContext ctx;

/**
 * Gets links.
 * 
 * @param uriInfo
 * @return
 */
@GET
public Response getLinks(@Context UriInfo uriInfo) {
...

ฉันเป็นมือใหม่ใน REST ฉันคงกำลังเดินไปผิดทาง

ฉันขอขอบคุณความคิดใด ๆ ...


person U.DOG    schedule 27.07.2015    source แหล่งที่มา
comment
ฉันไม่คิดว่าฟีเจอร์ JavaEE นี้จะถูกนำไปใช้ใน Domino   -  person muenzpraeger    schedule 27.07.2015


คำตอบ (1)


REST API มักจะไม่มีสถานะ ใน DAS แต่ละคำขอจะได้รับอินสแตนซ์ใหม่ของ Lotus.domino.Session แม้ว่าคำขอสองรายการจะได้รับการรับรองความถูกต้องโดยผู้ใช้คนเดียวกัน แต่คำขอเหล่านั้นจะได้รับอ็อบเจ็กต์เซสชันที่แตกต่างกัน

แน่นอนว่ามีวิธีในการแทรก state เข้าไปในการใช้งานของคุณ ตัวอย่างเช่น หากคุณกำลังพยายามจัดเก็บสถานะต่อผู้ใช้ระหว่างคำขอ คุณสามารถสร้างแผนที่แบบคงที่ของออบเจ็กต์โดยที่คีย์เป็น ID ผู้ใช้ที่ไม่ซ้ำกัน อย่างไรก็ตาม คุณจะต้องรับผิดชอบในการจัดการแคช ตัวอย่างเช่น คุณอาจต้องการลบรายการสำหรับผู้ใช้ที่ไม่ได้ใช้งานเป็นครั้งคราว DAS ไม่ได้ช่วยในเรื่องนั้น

นอกจากนี้ คุณคงไม่ต้องการเก็บออบเจ็กต์แบ็กเอนด์ของ Notes ไว้ระหว่างคำขอ อินสแตนซ์ของฐานข้อมูล มุมมอง เอกสาร ฯลฯ ล้วนเชื่อมโยงกับเซสชัน โดยปกติแล้วเซสชันจะถูกนำกลับมาใช้ใหม่เมื่อสิ้นสุดคำขอ ดังนั้นออบเจ็กต์ส่วนหลังอื่นๆ จึงไปด้วย

person Dave Delay    schedule 06.08.2015