A REST-FULL Service using implemented using Jersey and deployed on Grizzly server. Thi project implements the downstream REST API for the RADAR-CNS project.
All the endpoints are secured
and a valid user or a client registered with ManagementPortal with
appropriate permissions/scopes can access the endpoints. For more details see [Management
Portal] and [radar-auth]
To run the application do:
- Edit the
radar.yml
config file and then copy it the config folder under any of these paths./usr/share/conf/radar/rest-api
/usr/local/conf/radar/rest-api
- run
./gradlew build
- Run the
radar-restapi-0.3.jar
located atbuild/libs/
By default, log messages are redirected to the STDOUT
.
The api documentation is located at <your-server-address>:<port>/api/openapi.json
For accessing the end-points of this API, you will need JWT tokens from the [Management Portal]
(https://github.com/RADAR-CNS/ManagementPortal) and send it with each request in the header. In order for your token to allow access to the Rest-Api you will need to add the resource name of rest-api (ie - res_RestApi
) in the oauth client details of the Management Portal(MP). For example, if you want a client named dashboard
to have access to the REST API just add this line to the OAuth client credentials csv file of MP -
dashboard;res_RestApi;my-secret-token-to-change-in-production;SUBJECT.READ,PROJECT.READ,SOURCE
.READ,SOURCETYPE.READ,MEASUREMENT.READ;client_credentials;;;1800;3600;{};true
You can change the secret, scope, name, etc according to your needs. For more info, read the configuration in the Readme of Management Portal
The Rest-api is capable of reading bins.csv
file generated while restructuring the HDFS file system. See hdfs_restructure.sh. This file gives a summary of records being received by the Radar Platform. An example of this file is included here in the root directory. Please place it in the /usr/local/tomcat/bin/radar/bins.csv
for it to be readable by the RestApi. This is available at the end-point <your-server-address>:<port>/api/status/hdfs
and can be obtained as a CSV
or JSON
as specified by the Accept header in your request.
Click here to see documentation of dev deploy instance.
Swagger provides a tool to automatically generate a client in several programming language.
- Access this link
- Click on
File / Import URL
- Paste your public URL to
openapi.json
- Click on
Import
- Click on
Generate Client
and select your programming language
Useful for testing the integration between RADAR-CNS Hotstorage
, ManagementPortal
and
RADAR-CNS Rest API
.
Before running the test, add 127.0.0.1 hotstorage
to the hosts
file.
To run the test:
./gradlew integrationTest
Code should be formatted using the Google Java Code Style Guide. If you want to contribute a feature or fix, please make a pull request.