General API Information
Authentication
When you want to use API calls that require authentication, you have to log in first.
A successful login call returns a JSON object like this:
{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVC...",
    "expiresIn": "12h",
    "user": {
        "role": "user",
        "email": "arthur.dent@thhgttg.com",
        "firstName": "Arthur",
        "lastName": "Dent",
    }
}
For every following request, make sure to set the bearer token in the request header when trying to access restricted resources.
Note, that you have to add the string “Bearer ” to the value of the token you got from the login!
http-request-header Example
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Imdlb3JnLnBldHJvdmljQHJlZHBvc...
Differences to the ETER II API
Difference in API base URL
Old:
https://eter-project.com/api/eter/...
New:
https://eter-project.com/api/4.0/...
Several differences in API calls
For details on the new API calls please see the API documentation here:
The HEI query API call
The /HEIs/query API call is the most complex one in the API and needs some more info.
This is a http-POST request, that needs the following transmitted as JSON in the request body:
{
  "filter": {},
  "fieldIds": {},
  "searchTerms": []
}
The “filter” part is a mongoose query object (for details please see the official mongoose documentation).
Note, that all variables are stored in a structured way and are accessible via their package and fieldId as key. This is what e.g. the field BAS.WEBSITE looks like:
{    
  "BAS" : {
    "WEBSITE" : {
      "v" : "https://www.fh-joanneum.at/"
    }
  }
}
So, if you would like to filter by this field in the query, you would have to send something like this:
{
  "filter": {"BAS.WEBSITE.v": "https://www.fh-joanneum.at/"},
  "fieldIds": {},
  "searchTerms": []
}
The “fieldIds” part specifies, what variables to retrieve from each HEI. If you ommit this, ALL the variables are selected.
Here is an example for selecting only the ETER-ID and the field containing the website:
{
  "filter": {"BAS.WEBSITE.v": "http://www.uni-graz.at/"},
  "fieldIds": {"BAS.ETERIDYEAR": 1, "BAS.WEBSITE": 1},
  "searchTerms": []
}
								