A version of this is on DockerHub: https://hub.docker.com/r/cokoapps/anystyle
This standalone service exposes the functionality of converting a text string of references to XML or CSL, using Anystyle (https://anystyle.io). The API offered is as follows:
GET /healthcheckPOST /api/authPOST /infoPOST /api/referencesToXml
- As this service is meant to be from many clients, the first endpoint allows clients to acquire their access tokens in order to be able to use the service*. A call to the
api/authendpoint considered valid if it contains the Authorization header with valueBasic base64encoded(clientId:clientSecret).
The response of a valid call to theapi/authwill return anaccessToken** (JWT) - A call to the
api/referencesToXmlin order to be considered valid should have theAuthorizationproperty in its headers with valueBearer <the value of an accessToken provided by this service>. The propertyContent-Typeshould bemultipart/form-dataand finally the body should contain a text (.txt) file under a form field calledtxt. The response of this endpoint will be a file stream (mime type text/xml or application/JSON) containing the XML or CSL-JSON file which was created or aJSONif any errors occurred.
*client's registration required beforehand
**the life span of an accessToken is 8 hours
The service is fully dockerized for ease of use for either development or for use in production.
In the root of the service run docker-compose up
This container includes the actual service as well as a Postgres DB
In the root of the service run docker-compose -f docker-compose.production.yml up
This container contains just the service. An external Postgres DB should be provided.
PUBSWEET_SECRET
SERVER_PORT
SERVER_HOST
SERVER_PROTOCOL
POSTGRES_USER
POSTGRES_PASSWORD
POSTGRES_HOST
POSTGRES_DB
POSTGRES_PORT
NODE_ENV=production
All the above are required
When the service is up by executing docker exec -it <name_of_the_pagedjs_server_container> yarn create:client.
The above will produce a valid pair of clientId and clientSecret
This was forked from the PagedJS service, https://gitlab.coko.foundation/cokoapps/pagedjs
Version numbers should be the same as what's on DockerHub.
- version 1.1.0 supports the
/api/referencesToCslendpoint - version 1.1.1 is built for both AMD and Arm
- to check if it's running,
GETlocalhost:3000/healthcheck - to get an access token,
POSTlocalhost:3000/api/authwith Basic Auth andclientID/clientSecretfromcreateServiceClient.js - once you have an auth token,
POSTlocalhost:3000/infowith the access token as a Bearer Token will get info - To get XML out of this ,
POSTlocalhost:3000/api/referencesToXmlwith the access token as a Bearer Token, and withtxtin the body as an attached plain text file - To get CSL out of this,
POSTlocalhost:3000/api/referencesToCslwith the access token as a Bearer Token, and withtxtin the body as an attached plain text file