S-CASE Asset Registry REST API

Description of S-CASE Asset Registry REST API

Summary

Path Method Description
/artefact POST Creates and stores a new artefact in the repository
/artefact/directsearch GET Finds a list of artefacts by search query
/artefact/exists/{id} GET Checks whether an artefact exists in the repository
/artefact/search GET Finds a list of artefacts by free text search strings
/artefact/{id} DELETE Deletes an artefact from the repository
GET Finds an artefact in the repository by ID
PUT Updates an artefact in the repository
/domain/domains GET Retrieves a list of all domains in the repository
/domain/{id} GET Finds a domain by ID in the repository
/project POST Creates and stores a new project in the repository
/project/directsearch GET Finds a list of projects in the repository by search query
/project/search GET Finds a list of projects by free text search strings
/project/{id} DELETE Deletes a project from the Asset Repo by ID
PUT Updates a project in the Asset Repo
/project/{id}/id GET Finds a project in the repository by ID
/project/{name} DELETE Deletes a project from the Asset Repo by name
/project/{name}/name GET Finds a project in the repository by its name
/subdomain/subdomains GET Retrieves a list of all subdomains in the Asset Repository
/subdomain/{id} GET Finds a subdomain by ID in the Asset Repository
/version GET Returns the version number

Paths

Creates and stores a new artefact in the repository

POST /artefact

application/json

Artefact to be stored in the Asset Repo

application/json;charset=UTF-8

204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Finds a list of artefacts by search query

GET /artefact/directsearch

application/json

q Elastic Search query string query string

application/json

200
successful operation
204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Checks whether an artefact exists in the repository

GET /artefact/exists/{id}

application/json

id Artefact ID path integer (int64)

application/json

200
successful operation
204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Finds a list of artefacts by free text search strings

GET /artefact/search

application/json

query Elastic Search query string query string
domain Elastic Search domain query string
subdomain Elastic Search subdomain query string
type artefact type query string

application/json

200
successful operation
204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Deletes an artefact from the repository

DELETE /artefact/{id}

application/json

id Artefact ID of the artefact that shall be deleted from the Asset Repo path integer (int64)

application/json;charset=UTF-8

204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Finds an artefact in the repository by ID

GET /artefact/{id}

application/json

id Artefact ID path integer (int64)

application/json

200
successful operation
204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Updates an artefact in the repository

PUT /artefact/{id}

application/json

The artefact to be updated

id artefact id path integer (int64)

application/json;charset=UTF-8

204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Retrieves a list of all domains in the repository

GET /domain/domains

application/json

application/json

200
successful operation
204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Finds a domain by ID in the repository

GET /domain/{id}

application/json

id domain id path integer (int64)

application/json

200
successful operation
204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Creates and stores a new project in the repository

POST /project

application/json

The project to be stored inside of the Asset Repo

application/json;charset=UTF-8

204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Finds a list of projects in the repository by search query

GET /project/directsearch

application/json

q search query query string

application/json

200
successful operation
204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Finds a list of projects by free text search strings

GET /project/search

application/json

query Elastic Search query string query string
domain Elastic Search domain query string
subdomain Elastic Search subdomain query string

application/json

200
successful operation
204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Deletes a project from the Asset Repo by ID

DELETE /project/{id}

application/json

id ID of the project to be deleted path integer (int64)

application/json;charset=UTF-8

204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Updates a project in the Asset Repo

PUT /project/{id}

application/json

The project to be updated inside of the Asset Repo

id Project ID path integer (int64)

application/json;charset=UTF-8

204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Finds a project in the repository by ID

GET /project/{id}/id

application/json

id project ID path integer (int64)

application/json;charset=UTF-8

200
successful operation
204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Deletes a project from the Asset Repo by name

DELETE /project/{name}

application/json

name name of the project to be deleted path string

application/json;charset=UTF-8

204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Finds a project in the repository by its name

GET /project/{name}/name

application/json

name the name of the project path string

application/json;charset=UTF-8

200
successful operation
204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Retrieves a list of all subdomains in the Asset Repository

GET /subdomain/subdomains

application/json

application/json

200
successful operation
204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Finds a subdomain by ID in the Asset Repository

GET /subdomain/{id}

application/json

id subdomain ID path integer (int64)

application/json

200
successful operation
204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem
Returns the version number

GET /version

200
successful operation
204
No content
400
Request incorrect
401
Unauthorized
403
Forbidden
404
Not found
500
Server problem

Definitions

ProjectDTO: object

project: JsonProject
score: number (float)

SubDomain: object

id: integer (int64)
version: integer (int64)
name: string
domain: Domain

ArtefactDTO: object

artefact: JsonArtefact
score: number (float)

JsonArtefactPayload: object

id: integer (int64)
version: integer (int64)
type: string ∈ { BINARY , TEXTUAL }
format: string ∈ { IMAGE , XMI , TEXT_ISO_639_3 , TEXT_UTF8 , OWL , N3 , RDF , JAVA_CODE , JAVA_CODE_PACKED , JSON , WADL , XML }
name: string
payload: string[]

Domain: object

id: integer (int64)
version: integer (int64)
name: string
subdomains: array

JsonProject: object

id: integer (int64)
createdBy: string
updatedBy: string
createdAt: string (date-time)
updatedAt: string (date-time)
domain: string
subDomain: string
privacyLevel: string ∈ { PUBLIC , PRIVATE }
version: integer (int64)
name: string
artefacts: object[]

JsonArtefact: object

id: integer (int64)
createdBy: string
updatedBy: string
createdAt: string (date-time)
updatedAt: string (date-time)
domain: string
subDomain: string
privacyLevel: string ∈ { PUBLIC , PRIVATE }
version: integer (int64)
projectName: string
uri: string
groupId: string
name: string
dependencies: integer[]
type: string ∈ { USE_CASE , ACTIVITY_DIAGRAM , ANALYSIS_CLASS_DIAGRAM , STORYBOARD , TEXTUAL , STATIC_ONTOLOGY , DYNAMIC_ONTOLOGY , AGGREGATED_ONTOLOGY , CODE_SNIPPET , NOTE , CIM , PIM , PSM , CODE , SERVICE_DESCRIPTION , COMPOSITE_SERVICE_DESCRIPTION , SERVICE , OSRF_PROJECT , OSRF_FILE }
description: string
tags: string[]
metadata: object
string
payload: object[]