The main Ontohub service that serves the data for the frontend and other clients via the GraphQL API.
You need to have the postgres
and rabbitmq
services started.
This guide assumes that you have got the hets-agent located at ../hets-agent
relative to the ontohub-backend repository.
We use the invoker process manager during development to run all the needed processes with one command.
You can start it with either bundle exec rails invoker
or bundle exec invoker start invoker.ini
(the former only calls the latter, but consumes more memory).
Alternatively, you can start the processes yourself by running each of these commands in a separate terminal:
bundle exec rails sneakers:run
to run the sneakers workersbundle exec rails server
to run the HTTP server of the backend in development modepushd ../hets-agent && bin/hets_agent; popd
to run the HetsAgent
The backend is then reachable from the browser at http://localhost:3000. The interactive GraphiQL console can be accessed at http://localhost:3000/graphiql.
The backend is implemented in Ruby on Rails. First,
the Ruby version referenced in the file .ruby-version needs to
be installed, as well as the gem bundler. git
needs to
be installed as well. Invoking the command bundle install
in the directory
of this repository will then install all dependencies of the backend.
In order to set up a complete environment, please refer to the wiki page Setting up the development environment.
We maintain API documentation with a JSON schema description.
The schemas are located at spec/support/api/schemas.
You can build an HTML-representation of it with doca.
This requires the tools npm
and yarn
to be installed on your system and be in your PATH
.
First, you need to install doca with npm. We created a Rake task for this:
rails apidoc:prepare
Next, you need to create the documentation server files:
rails apidoc:init
This initialization must be run whenever new schema files are created.
And finally, you can run the API documentation server (the default port is 3002):
rails apidoc:run
# or to change the port:
PORT=8001 rails apidoc:run
Then, visit http://localhost:3002 to see the REST API documentation. This server listens to changes on the JSON schema files and updates the documentation.