About
Webservice collects tool metadata and search Scopus for citation information. It also generates descriptive statistics about the tools and their citation count, and exports data to be used as input for the analytical scripts.
Webservice is written in an ASP.NET web application, written in C# .NET Core. Currently, the only way to interact with the service is via it's API; its Swagger documentation is available at this link. The webservice stores its data on a database; it uses Entity Framework Core as its object–relational mapping (ORM), hence it can use different database system if its connection string is set correctly. By default it runs on SQL Server.
Webservice is containerized and comes with a
docker-compose
and Dockerfile
.
The docker-compose
starts Webservice and SQL Server,
and establishes a connection between them.
To start Webservice, run the following command at the root of the project path:
Or to build the webservice, you may run the following from the root of the project path:
The service will be listening on port 3030
. You can access
its API at the following address:
For instance, try the following endpoint to get a list of the defined repositories:
The API is RESTful and comes with a Swagger documentation. You can access the public instance at this link, or, once the Webservice is running, you may go to the following address to access your local Swagger documentation:
Or you may access Swagger JSON
or YAML
description at:
Note that every crawling request you submit (e.g.,
POST LieratureCrawlingJob
or
POST RepoCrawlingJobs
)
will be executed as a job
.
Therefore, when you POST
a request to these API endpoints, Webservice will respond
with the information of the job created (see the following example), and it will
schedule and execute the job in background.
Send a repository (Package management systems such as Bioconda and Bioconductor) crawling request:
which will respond with the created crawling job:
You can get the status of all the submitted jobs sending a GET
request
to api/v1/RepoCrawlingJobs
endpoint, which responds with a JSON object
as the following.