| [//]: # " Copyright (c) 2015, 2020 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 " | |
| JSON-P JAX-RS JSON Provider Example | |
| =================================== | |
| This example demonstrates how to produce/consume JSON representations | |
| defined by [Jakarta JSON](https://projects.eclipse.org/projects/ee4j.jsonp). | |
| Contents | |
| -------- | |
| The mapping of the URI path space is presented in the following table: | |
| URI path | Resource class | HTTP methods | Allowed values | |
| --------------------------- | --------------------------- | -------------- | ------------------------------ | |
| **_/document_** | DocumentResource | GET | | |
| **_/document_** | DocumentResource | DELETE | | |
| **_/document_** | DocumentResource | POST | `JsonObject` | |
| **_/document/{id: \d+}_** | DocumentResource | GET | | |
| **_/document/{id: \d+}_** | DocumentResource | DELETE | | |
| **_/document/multiple_** | DocumentResource | POST | `JsonArray` of `JsonObject`s | |
| **_/document/filter_** | DocumentFilteringResource | POST | `JsonArray` of string values | |
| (See JsonProcessingResourceTest for more details.) | |
| Running the Example | |
| ------------------- | |
| Run the example as follows: | |
| > mvn clean package jetty:run | |
| A [WADL description](http://wadl.java.net/#spec) may be accessed at the URL: | |
| - <http://localhost:8080/jsonp-webapp/application.wadl> | |
| This deploys current example using Jetty. You can access the application at <http://localhost:8080/jsonp-webapp/document> | |
| You can access resources of this application also using curl: | |
| ### Store some documents. | |
| > curl -H "Content-Type: application/json" -X POST --data '[{"name":"Jersey","site":"http://jersey.java.net"},{"age":33,"phone":"158158158","name":"Foo"},{"name":"JSON-P","site":"http://jsonp.java.net"}]' http://localhost:8080/jsonp-webapp/document/multiple | |
| ### Retrieve stored documents. | |
| > curl http://localhost:8080/jsonp-webapp/document | |
| ### Retrieve a document with id 1. | |
| > curl http://localhost:8080/jsonp-webapp/document/1 | |
| ### Retrieve `site` attributes with values of documents containing this attribute. | |
| > curl -H "Content-Type: application/json" -X POST --data '["site"]' http://localhost:8080/jsonp-webapp/document/filter |