Project

General

Profile

Actions

Web Services Definition » History » Revision 21

« Previous | Revision 21/40 (diff) | Next »
Kurt Gerber, 13 Dec 2018 16:48


API / Web Services Requirements

Request services

The existing API is documented here: https://qcat.readthedocs.io/en/latest/api/docs.html

Required missing request services:

1. Whithout the 'edition' endpoint, it should response with an array of available editions. Now it answers with a 'Not found' html page.

2. Without the specific configuration endpoint (like 'technologies'), the response should be an array of available configurations. Now it answers with a 'Not found' html page.

Requirements for services to add / update cases

The following new webservice endpoints must be developed.

h3.1. Authentification endpoint

To upload a case, a user has to authenticate himself. Therefore an authentification endpoint is needed.

The existing authorization token serves only as authorization to access the API.
The token is application based and always the same for a certain application, independently of the user working with the application.

  • The user has to authenticate before any data is uploaded or non-public downloaded.
  • After a successfull authentification, the server sends a 'sessionid'. This sessionid has to be added to the request header for any subsequent POST request. Should work a bit as on the web UI with the sessionid in the cookie.
  • LImitations on client side? (to discuss)

Endpoint: /api/v2/user-token/

Allowed method: POST

Post data:

  • username: The username of a WOCAT account
  • password: The password of the corresponding WOCAT account

Response:

{"sessionid":"09249249243729342123ad232dc"}

2. Upload endpoint

Endpoint: /api/v2/create/<configuration>/<edition>

Allowed method: POST

POST data: a valid questionnaire based on the corresponding configuration template

Request Header:
  • Authorization: Token AUTH_TOKEN
  • sessionid: 6xn26rwsy0r0k2yn5bsoq2qiyssg9mrs
  • Accept: application/json or Accept: application/xml
  • Content-Type: application/json or Content-Type: application/xml

Response:

{"success":"true",
 "code": "technologies_4534" 
}

3. endpoint image/file upload

This should be handled the same as already done the ui version.

Adding an image uploads it directly with POST to https://qcat.wocat.net/en/upload

As response it gets a JSON like this:

{
    "success": true,
    "uid": "cfb23a06-385a-47c5-8a94-83cae1fd90b7",
    "interchange": [
        "[/upload/9d/a/9da8b521-7130-48df-ba31-549016a748e5.jpg, (default)]",
        "[/upload/0a/3/0a3fea13-1485-4ec8-92ee-351eef561d2d.jpg, (small)]",
        "[/upload/17/0/170251f9-a9ea-4945-a714-0beaebb7c750.jpg, (medium)]",
        "[/upload/cf/b/cfb23a06-385a-47c5-8a94-83cae1fd90b7.jpg, (large)]" 
    ],
    "url": "/upload/cf/b/cfb23a06-385a-47c5-8a94-83cae1fd90b7.jpg" 
}

The value of the key "uid" is what is then really stored in the 'image' key field of the corresponding questionnaire.

Updated by Kurt Gerber almost 6 years ago · 21 revisions