JEST uses HTTP as communication protocol and HTTP URI as its command syntax.
A JEST URI introduces specific syntax rule on a standard URI to interpret the commands.
| Server Function | JEST URI |
---|---|---|
02 | List simple name of the domain classes | http://www.jpa.com/jest/domain |
03 | List the key-value properties of the persistent unit | http://www.jpa.com/jest/properties |
04 | Find an instance by key | http://www.jpa.com/jest/find?type=Person&123456789 |
05 | Find an instance by key | http://www.jpa.com/jest/find?type=Person&ssn=123456789&name=John |
06 | Get the result of the query with no parameter | http://www.jpa.com/jest/query?q=select p from Person p |
07 | Get the result of the query with single parameter | http://www.jpa.com/jest/query?q=select p from Person p where p.name=:name&name=John |
08.1 | Get the result of the query with multiple parameters | http://www.jpa.com/jest/query?q=select p from Person p where p.name=:name and age > :age&name=John&age=20 |
08.2 |
| http://www.jpa.com/jest/query?q=select p from Person p where p.first=:first and p.last=:last&first=John&last=Doe |
09 | Get the single result of the query | http://www.jpa.com/jest/query/single?q=select p from Person p where p.name=:name&name=John |
10 | Get the result of the named query | http://www.jpa.com/jest/query/named?q=QueryPersonByName&name=John |
11.1 | Get the single result of the named query | http://www.jpa.com/jest/query/single/named?q=QueryPersonByName&name=John |
11.2 | or | http://www.jpa.com/jest/query/named/single?q=QueryPersonByName&name=John |
12 | Get first 20 rows of query using a fetch plan | http://www.jpa.com/jest/query/fecthplan=myPlan/ignoreCache/maxResult=20?q=select p from Person p |
Code Block | ||
---|---|---|
| ||
uri := http://host[:port]/action/[qualifier]*['?'[parameter]'&'*]
qualifier := qualifier-key['='qualifier-value]
parameter := parameter-key'='parameter-value
action : denotes the JPA operation to be performed.
For example, find, query, insert, merge, remove, properties, domain etc.
qualifier : qualifies the action.
specific to the action, e.g. a query action can qualify with query/single to get a single result as in above ex09.
zero or more qualifier can be specified.
qualifier may have value separated by '='
each qualifier is separated by '/'
qualifier ordering is not significant (see above ex11.1 and ex11.2)
parameter : parameter for the action
For example, JPQL string is a parameter for a query action
zero or more parameter can be specified
parameter may have value separated by '='
each parameter is separated by '&'
first parameter can have special semantics based on action, e.g. first parameter for 'query' is JPQL string,
or first parameter for 'find' is the entity name, etc.
|