Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

REST support in STP

Revision as of 04:31, 7 November 2007 by Unnamed Poltroon (Talk) (3. Generate Resources class for each entity class)

Introduction

This page aims to define the basic processes on how to support REST in stp, there is sample to simplifies how to create a RESTfull service from a database directly.

There are two ways to support to create RESTfull service:

* Exposing a database to RESTfull service directly
* Starting from importing some POJO class into a rest project

Exposing a database to RESTfull service directly

We can create a RESTfull service by starting from a database with the following steps:

1. Create a REST project using STP.Service Creation Wizard

add project nature "org.eclipse.jem.workbench.JavaEMFNature" which defined in WTP DALI subproject and Java Persistence Facet, once the project has the nature and JP Facet, some DALI function will be available in the subsequent steps.

2. Generate Entity classes from database

select a database to connect

Connect.JPG

select tables that want to be exposed as REST resource from the databse

Tables.JPG

the following classes will be generated:

Entities class.JPG

three entities class will be generated, these classes are annotated with JPA annotations(by the way, the used JPA implementation library is Oracle TopLink), users can modify the annotations in the generated classes through JPA detail view, it looks like:

Jpa detail.JPG

add all entity classes into a persistence unit by configuring persistence.xml

Generate Resources class for each entity class

In this step, we will provide a tool for generating Resource class from entity classes. User select the entity classes that generated from database to generate resource classes ,all these resource classes are annotated with annotations defined in jsr311 specification. each entity class maps to two Resource classes, for example, Item class has ItemResource class and ItemsResource class, ItemResource class responsible for getting detail info of a specific item, updating and deleting the item, ItemsResource class is responsible for returning item list and adding a new item. After resource classes are generated, the project package view looks like:

Rest packagesrtucture.JPG

Back to the top