TORRES is a searchable repository of FAIR (Findable, Accessible, Interoperable, and Reusable) servers. It enables the capture of web services and the datasets they provide. The overall goal is to facilitate to discovery of servers that have content that are relevant to the user. Thus, TORRES is geared towards establishing a searchable index of the relations between data types and relationships, which is termed a GraphMap in the project.
TORRES builds on on the API Platform website, and as such provides
- A hypermedia REST API with pagination, data validation, access control, relation embedding, filters and error handling...
- A GraphQL API
- Content Negotiation: GraphQL, JSON-LD, Hydra, HAL, JSONAPI, YAML, JSON, XML and CSV are supported out of the box.
- Automatically generated API documentation that follows (Swagger/OpenAPI).
- Docker and Kubernetes deployable.
- Makes use of Symfony web application framework and Doctrine ORM, while proressive client components leverage React.
Rebuild and push the different Docker images:
./rebuild.sh
Restart the API platform in production:
./restart.sh
Access:
- CLIENT_HOST=torres.semanticscience.org
- API_HOST=api.torres.semanticscience.org
- Mercure: mercure.torres.semanticscience.org
Original images:
ADMIN_IMAGE=quay.io/api-platform/admin
NGINX_IMAGE=quay.io/api-platform/nginx
PHP_IMAGE=quay.io/api-platform/php
CLIENT_IMAGE=quay.io/api-platform/client
VARNISH_IMAGE=quay.io/api-platform/varnish
Environment variable not used:
NGINX_IMAGE=quay.io/api-platform/nginx
MERCURE_JWT_KEY=4121344212538417de3e2118
MERCURE_JWT_SECRET=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtZXJjdXJlIjp7InN1YnNjcmliZSI6WyJmb28iLCJiYXIiXSwicHVibGlzaCI6WyJmb28iXX19.B0MuTRMPLrut4Nt3wxVvLtfWB_y189VEpWMlSmIQABQ
Developer components:
The API entities (Dataset, DataService, GraphMap) are fully defined in api/src/Entity/
Data examples are in api/data/