blob: 0712a30569abf7f07aafa7dbf39938c4752948fe [file] [log] [blame]
[//]: # " Copyright (c) 2015, 2018 Oracle and/or its affiliates. All rights reserved. "
[//]: # " "
[//]: # " This program and the accompanying materials are made available under the "
[//]: # " terms of the Eclipse Distribution License v. 1.0, which is available at "
[//]: # " http://www.eclipse.org/org/documents/edl-v10.php. "
[//]: # " "
[//]: # " SPDX-License-Identifier: BSD-3-Clause "
JSONP Example
=============
This example demonstrates how to use JSONP wrapper in order to serve not
only JSON but also a JavaScript expression representing a function call
with the original JSON data as a parameter. The technique is well
described e.g. at <http://en.wikipedia.org/wiki/JSON#JSONP>.
A simple web application is presented with just one resource: a change
record list. A client can obtain the list using XML or JSON or
JavaScript representation. The last change record is also available in
all three formats as a subresource of the previously mentioned list
resource.
Contents
--------
The change record list web resource is implemented by
`org.glassfish.jersey.examples.jsonp.ChangeListResource` class.
The mapping of the URI path space is presented in the following table:
URI path | Resource class | HTTP methods
----------------------- | ---------------- | --------------
**_/changes_** | ChangeList | GET
**_/changes/latest_** | ChangeList | GET
Running the Example
-------------------
Run the example as follows:
> mvn clean compile exec:java
This deploys the JSONP example using [Grizzly](http://grizzly.java.net/)
A [WADL description](http://wadl.java.net/#spec) may be then accessed at the URL:
- <http://localhost:8080/jsonp/application.wadl>
Following steps are using [cURL](http://curl.haxx.se/) command line tool:
Get the list of changes in JSON format:
> curl -HAccept:application/json http://localhost:8080/jsonp/changes
Get the list of changes in XML format:
> curl -HAccept:application/xml http://localhost:8080/jsonp/changes
Get the list of changes as a JavaScript callback:
> curl -HAccept:application/x-javascript http://localhost:8080/jsonp/changes
You can also see test classes at `src/main/test` subdirectory for detail
information how to consume the service using Jersey client API
### JavaScript Client
After starting the service and refreshing this page, a list of changes
should be displayed below:
`You need to run the service first!`