'DAS - Layanan Domino REST' dan integrasi Spring. Apakah itu nyata?

Saya ingin membangun layanan REST sendiri di domino. Saya sudah mencoba sampel dari sumber github ExtLib - 'DAS - Layanan Domino REST' - com.ibm.domino.services.sample.

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

Saya belum menemukan cara memasukkan konteks saya sendiri ke Sumber Daya. Konteks saya memiliki koneksi ke beberapa NotesDatabases, mungkin akan memiliki objek lain, yang saya tidak ingin inisialisasi setiap kali permintaan HTTP diproses.

Sebenarnya saya menggunakan Spring AppContext untuk menyimpan objek konteks dan kacang lain yang saya perlukan.

Jadi pertanyaannya adalah apakah ada kemungkinan bagaimana cara memasukkan beberapa objek (sebaiknya Spring AppContext) ke objek Resource.

Saya mencari sesuatu seperti ini:

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) {
...

Saya seorang pemula di REST. Mungkin saya bergerak ke arah yang salah.

Saya akan menghargai ide apa pun...


person U.DOG    schedule 27.07.2015    source sumber
comment
Menurut saya fitur JavaEE ini tidak diterapkan di Domino.   -  person muenzpraeger    schedule 27.07.2015


Jawaban (1)


REST API biasanya tidak memiliki kewarganegaraan. Di DAS, setiap permintaan mendapat instance baru dari lotus.domino.Session. Meskipun dua permintaan diautentikasi oleh pengguna yang sama, keduanya akan mendapatkan objek Sesi yang berbeda.

Tentu saja ada cara untuk memasukkan status ke dalam implementasi Anda. Misalnya, jika Anda mencoba menyimpan status per pengguna di antara permintaan, Anda dapat membuat peta objek statis yang kuncinya adalah ID pengguna unik. Namun, Anda akan bertanggung jawab untuk mengelola cache. Misalnya, Anda ingin sesekali menghapus entri untuk pengguna yang tidak aktif. DAS tidak membantu dalam hal itu.

Selain itu, Anda tidak ingin menyimpan objek back-end Notes apa pun di antara permintaan. Contoh Database, Tampilan, Dokumen, dll. semuanya terkait dengan Sesi. Biasanya Sesi didaur ulang di akhir permintaan sehingga objek back-end lainnya ikut bersamanya.

person Dave Delay    schedule 06.08.2015