You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 31 Next »

API endpoints

FA01 | Create bookmark

POST

/favourites/bookmarks

User permission required

Remarks

  • The parameter folderId defines all lists (folders) to add the bookmark.
    • Duplicates for folderIds are not possible because of using a set.
  • The folderId favorites is always used. If no folderId is specified, only favorites is used.
  • If the folder favorites not exists, because a new user adds the first bookmark, then the folder favorites is created.

Query parameters

NameValueOccurenceDefault
folderIdsID of folder(s)Multiple-

Response payload

Returns Bookmark JSON object:

{
	"id": "rjzgAIgBdHmpxQQKvQHm",
	"itemId": "IVMX3IRHKU725WR2HHT6VY2AFFS72FGK",
	"description": "My important description",
	"userId": "fachstelle_museum",
	"type": "CULTURAL_ITEM",
	"createdAt": 1683641908448,
	"updatedAt": 1683641908448,
	"keywordTool": {
		"done": True
	}
}

Status codes

  • 200 = Bookmark created
  • 400 = Item Id is missing (required)
  • 401 = User is not authorized
  • 500 = Internal server error

Related Use Case(s)

  • UC01 | Create bookmark
    • The user selects an object from an object list as a favorite.

Example call(s)

  • Create bookmark in only main folder
    • GET https://dev-ddb.fiz-karlsruhe.de/api/2/favourites/bookmarks
  • Create bookmark in main folder and two additional folders
    • GET https://dev-ddb.fiz-karlsruhe.de/api/2/favourites/bookmarks?folderIds=Sjszo4cBdHmpxQQKUvah&folderIds=rjwQKYgBdHmpxQQKKgSs


Zur Übersicht


FA02 | Retrieve bookmark

GET

/favourites/bookmarks/{id}

User permission required

Response payload

Returns Bookmark JSON object:

{
	"id": "rjzgAIgBdHmpxQQKvQHm",
	"itemId": "IVMX3IRHKU725WR2HHT6VY2AFFS72FGK",
	"description": "My important description",
	"userId": "fachstelle_museum",
	"type": "CULTURAL_ITEM",
	"createdAt": 1683641908448,
	"updatedAt": 1683641908448,
	"keywordTool": {
		"done": True
	}
}

Status codes

  • 200 = Bookmark found
  • 401 = User is not authorized
  • 404 = Bookmark ID not found
  • 500 = Internal server error

Related Use Case(s)

  • All info of a bookmark is retrieved to display it in the frontend.



FA03 | Retrieve bookmarks

GET

/favourites/bookmarks

User permission required

Query parameters

NameValueOccurenceDefault
folderIdsID of folder(s)Multiple-

Response payload

Returns BookmarkResult JSON object:

{
	"query": "user:"73611165cc142ae53176707d5a92e8f3",
	"total": 4,
	"offset": 0,
	"size": 9999,
	"bookmarks": [
		{
			"id": "rjzgAIgBdHmpxQQKvQHm",
			"itemId": "IVMX3IRHKU725WR2HHT6VY2AFFS72FGK",
			"description": "",
			"userId": "fachstelle_museum",
			"type": "CULTURAL_ITEM",
			"createdAt": 1683641908448,
			"updatedAt": 1683641908448,
			"keywordTool": {
				"done": False
			},
		},
		{
			"id": "nDxWtIgBdHmpxQQKNxNQ",
			"itemId": "IVMX3IRHKU725WR2HHT6VY2AFFS72FGK",
			"description": "Neues Lesezeichen",
			"userId": "fachstelle_museum",
			"type": "CULTURAL_ITEM",
			"createdAt": 1683641908448,
			"updatedAt": 1683641908448,
			"keywordTool": {
				"done": False
			},
		}
	]
}

Status codes

  • 200 = Bookmark(s) found
  • 400 = Missing some search params
  • 401 = User not authorized
  • 500 = Internal server error

Related Use Case(s)

  • Bookmarks according to certain criteria are retrieved to be displayed in the frontend.



FA04 | Update bookmark

PUT

/favourites/bookmarks/{id}

User permission required

Remarks

  • The parameter folderId defines all lists (folders) to add the bookmark.
    • Duplicates for folderIds are not possible because of using a set.
  • The folderId favorites is always used. If no folderId is specified, only favorites is used.
  • If the folder favorites not exists, because a new user adds the first bookmark, then the folder favorites is created.

Query parameters

NameValueOccurenceDefault
userIdID of userOnce-
itemIdsList of IDsMultiple-
offsetBeginn offset of resultsOnce-1
sizeSize data of resultsOnce-1

Request payload

Returns Bookmark JSON object:

{
	"id": "rjzgAIgBdHmpxQQKvQHm",				// Not used
	"itemId": "IVMX3IRHKU725WR2HHT6VY2AFFS72FGK",		// Not used
	"description": "Another description",			// Optional
	"userId": "fachstelle_museum",				// Not used
	"type": "INSTITUTION",					// Optional
	"createdAt": 1683641908448,				// Not used
	"updatedAt": 1683641908448,				// Not used
	"keywordTool": {					// Optional
		"done": false
	}
}

Response payload

Returns Bookmark JSON object:

{
	"id": "rjzgAIgBdHmpxQQKvQHm",
	"itemId": "IVMX3IRHKU725WR2HHT6VY2AFFS72FGK",
	"description": "Another description",
	"userId": "fachstelle_museum",
	"type": "INSTITUTION",
	"createdAt": 1683641908448,
	"updatedAt": 1683641908555,
	"keywordTool": {
		"done": false
	}
}

Status codes

  • 200 = Bookmark updated
  • 401 = User is not authorized
  • 404 = Bookmark ID not found
  • 500 = Internal server error

Related Use Case(s)

  • UC07 | Change bookmark description
    • A user changes the description of a bookmark.



FA05 | Delete bookmark

DELETE

/favourites/bookmarks/{id}

User permission required

Query parameters

NameValueOccurenceDefault
folderIdsID of folder(s)Multiple-

Status codes

  • 200 = Bookmark deleted
  • 401 = User is not authorized
  • 404 = Bookmark ID not found
  • 500 = Internal server error

Related Use Case(s)

  • UC06 | Delete bookmarks in All Favorites
    • A user deletes a bookmark from favorites (and the rest of the lists).



FA06 | Create folder

POST

/favourites/folders

User permission required

Request payload

Returns Folder JSON object:

{
	"id": "73611165cc142ae53176707d5a92e8f3",	// Not used
	"title": "favorites",				// Required
	"description": "Das ist ein Test!",		// Optional
	"userId": "fachstelle_museum",			// Not used
	"publishingName": "xxx",			// Optional
	"createdAt": 1682070216141,			// Not used
	"updatedAt": 1683642142482,			// Not used
	"bookmarkIds": [				// Optional
		"MESR_IcBosJ3rUWzhkJj",
		"rjzgAIgBdHmpxQQKvQHm"
	],
	"institutionIds": [				// Optional
		"MESR_IcBosJ3rUWzhkJj"
	],
	"blockingToken": "Test",			// Optional
	"blocked": true,				// Optional
	"published": true,				// Optional
	"keywordTool": {				// Optional
		"sentToAdmin": false
	}
}

Response payload

Returns Folder JSON object:

{
	"id": "73611165cc142ae53176707d5a92e8f3"
	"title": "favorites",
	"description": "Das ist ein Test!",
	"userId": "fachstelle_museum",
	"publishingName": "xxx",
	"createdAt": 1682070216141,
	"updatedAt": 1683642142482,
	"bookmarksIds": [
		"MESR_IcBosJ3rUWzhkJj",
		"rjzgAIgBdHmpxQQKvQHm"
	],
	"institutionIds": [
		"MESR_IcBosJ3rUWzhkJj"
	],
	"blockingToken": "Test",
	"blocked": true,
	"published": true,
	"keywordTool": {
		"sentToAdmin": false
	}
}

Status codes

  • 200 = Folder created
  • 400 = Title attribute is missing
  • 401 = User is not authorized
  • 409 = Folder already exists
  • 500 = Internal server error

Related Use Case(s)

  • UC05 | Add personal folder
    • A user creates a personal folder.



FA07 | Add bookmark to folder

POST

/favourites/{id}/bookmarks

User permission required

Remarks

  • A bookmark could not be added to the main folder (favorites), because it is added to this folder when you create a bookmark.
  • The folder ID and bookmark ID must exist before adding something.

Query parameters

NameValueOccurenceDefault
bookmarkIdID of bookmark to addOnce-

Status codes

  • 200 = Bookmarks added
  • 400 = Bookmark ID not exist
  • 401 = User is not authorized
  • 404 = Folder ID not exist
  • 500 = Internal server error

Related Use Case(s)

  • UC02 | Assign bookmarks to selected lists
    • A user stores bookmarks (additionally) in personal lists.
  • UC08 | Copy bookmarks from All Favorites to personal lists
    • A user copies bookmarks into personal lists.
  • UC14 | Copy bookmarks to another personal list
    • A user copies bookmarks from a personal list to other personal lists.



FA08 | Retrieve folder

GET

/favourites/folders/{id}

User permission required

Response payload

Returns Folder JSON object:

{
	"id": "73611165cc142ae53176707d5a92e8f3"
	"title": "favorites",
	"description": "Das ist ein Test!",
	"userId": "fachstelle_museum",
	"publishingName": "xxx",
	"createdAt": 1682070216141,
	"updatedAt": 1683642142482,
	"bookmarksIds": [
		"MESR_IcBosJ3rUWzhkJj",
		"rjzgAIgBdHmpxQQKvQHm"
	],
	"institutionIds": [
		"MESR_IcBosJ3rUWzhkJj"
	],
	"blockingToken": "Test",
	"blocked": true,
	"published": true,
	"keywordTool": {
		"sentToAdmin": false
	}
}

Status codes

  • 200 = Folder found
  • 401 = User is not authorized
  • 404 = Folder not exist
  • 500 = Internal server error

Related Use Case(s)

  • All info of a list is retrieved to display it in the frontend.



FA09 | Retrieve bookmarks of a folder

GET

/favourites/folders/{id}/bookmarks

User permission required

Response payload

Returns BookmarkResult JSON object:

{
	"query": "user:"73611165cc142ae53176707d5a92e8f3" AND folder:"p0Qyo4cBosJ3rUWznjiY"",
	"total": 4,
	"offset": 0,
	"size": 9999,
	"bookmarks": [
		{
			"id": "rjzgAIgBdHmpxQQKvQHm",
			"itemId": "IVMX3IRHKU725WR2HHT6VY2AFFS72FGK",
			"description": "",
			"userId": "fachstelle_museum",
			"type": "CULTURAL_ITEM",
			"createdAt": 1683641908448,
			"updatedAt": 1683641908448,
			"keywordTool": {
				"done": False
			},
		},
		{
			"id": "nDxWtIgBdHmpxQQKNxNQ",
			"itemId": "IVMX3IRHKU725WR2HHT6VY2AFFS72FGK",
			"description": "Neues Lesezeichen",
			"userId": "fachstelle_museum",
			"type": "CULTURAL_ITEM",
			"createdAt": 1683641908448,
			"updatedAt": 1683641908448,
			"keywordTool": {
				"done": False
			},
		}
	]
}

Status codes

  • 200 = Folder found
  • 401 = User not authorized
  • 404 = Folder not exist
  • 500 = Internal server error

Related Use Case(s)

  • UC04 | Retrieve bookmarks of a list
    • The user retrieves bookmarks of a specified list.



FA10 | Retrieve folders

GET

/favourites/folders

User permission required

Query parameters

NameValueOccurenceDefault
userIdID of userOnce-
titleTitle of folderOnce-
offsetBeginn offset of resultsOnce-1
sizeSize data of resultsOnce-1

Response payload

Returns FolderResult JSON object:

{
	"query": "user:"73611165cc142ae53176707d5a92e8f3"",
	"total": 19,
	"offset": 0,
	"size": 9999,
	"folders": [
		{
			"id": "Sjszo4cBdHmpxQQKUvah",
			"title": "Schiller",
			"description": "",
			"userId": "fachstelle_museum",
			"publishingName": "dio",
			"createdAt": 1682070262371,
			"updatedAt": 1683642142787,
			"bookmarksIds": ["MUSR_IcBosJ3rUWzmkLU"],
			"institutionIds": Null,
			"blockingToken": "",
			"keywordTool": {
				"sentToAdmin": false
			},
			"blocked": false,
			"published": true},
		{
			"id": "rjwQKYgBdHmpxQQKKgSs",
			"title": "favorites",
			"description": "Das ist ein Test!",
			"userId": "fachstelle_museum",
			"publishingName": "xxx",
			"createdAt": 1682070216141,
			"updatedAt": 1683642142482,
			"bookmarksIds": [],
			"institutionIds": none,
			"blockingToken": "Test",
			"keywordTool": {
				"sentToAdmin": false
			},
			"blocked": true,
			"published": true
		}
	]
}

Status codes

  • 200 = Folder(s) found
  • 400 = Missing some search params
  • 401 = User not authorized
  • 500 = Internal server error

Related Use Case(s)

  • UC03 | Listennamen eines Benutzers abrufen
    • The user retrieves bookmarks of a specified list.



FA11 | Update folder

POST

/favourites/folders/{id}

User permission required

Query parameters

NameValueOccurence
folderIdsID of folder(s)Multiple

Request payload

Returns Folder JSON object:

{
	"id": "Sjszo4cBdHmpxQQKUvah",			// Not used
	"title": "favorites",				// Optional
	"description": "Das ist ein Test!",		// Optional
	"userId": "fachstelle_museum",			// Not used
	"publishingName": "xxx",			// Optional
	"createdAt": 1682070216141,			// Not used
	"updatedAt": 1683642142482,			// Not used
	"bookmarksIds": [				// Optional
		"MESR_IcBosJ3rUWzhkJj",
		"rjzgAIgBdHmpxQQKvQHm"
	],
	"institutionIds": [				// Optional
		"MESR_IcBosJ3rUWzhkJj"
	],
	"blockingToken": "Test",			// Optional
	"blocked": true,				// Optional
	"published": true,				// Optional
	"keywordTool": {				// Optional
		"sentToAdmin": false
	}
}

Response payload

Returns Folder JSON object:

{
	"id": "Sjszo4cBdHmpxQQKUvah",	
	"title": "favorites",
	"description": "Das ist ein Test!",
	"userId": "fachstelle_museum",
	"publishingName": "xxx",
	"createdAt": 1682070216141,
	"updatedAt": 1683642142482,
	"bookmarksIds": [
		"MESR_IcBosJ3rUWzhkJj",
		"rjzgAIgBdHmpxQQKvQHm"
	],
	"institutionIds": [
		"MESR_IcBosJ3rUWzhkJj"
	],
	"blockingToken": "Test",
	"blocked": true,
	"published": true,
	"keywordTool": {
		"sentToAdmin": false
	}
}

Status codes

  • 200 = Folder updated
  • 401 = User not authorized
  • 404 = Folder ID not found
  • 500 = Internal server error

Related Use Case(s)

  • UC09 | Publish or privatize personal list
    • A user publishes a list or make a published list private again.
  • UC10 | Change properties of personal list
    • Furthermore, the user can change name, description, private/public, name abbreviation of a personal list.



FA12 | Delete folder

DELETE

/favourites/folders/{id}

User permission required

Query parameters

NameValueOccurence
folderIdsID of folder(s)Multiple

Status codes

  • 200 = Folder deleted
  • 400 = Folder favorite could not be deleted
  • 401 = User not authorized
  • 404 = Folder ID not found
  • 500 = Internal server error

Related Use Case(s)

  • UC11 | Remove personal list with bookmarks
    • The user deletes a personal list with the contained bookmarks.



FA13 | Delete bookmark from folder

DELETE

/favourites/folders/{id}/bookmarks/{bookmarkId}

User permission required

Remarks

  • A bookmark could not be deleted from the main folder (favorites), because this is done only if the bookmark is deleted (see Delete Bookmark).
  • The folder ID and bookmark ID must exist before deleting something.

Status codes

  • 200 = Bookmark in Folder deleted
  • 400 = Bookmark ID not found
  • 401 = User not authorized
  • 404 = Folder ID not found
  • 500 = Internal server error

Related Use Case(s)

  • FA13 | Delete bookmark from list
    • A bookmark is removed from a personal list.



FA14 | Delete all bookmarks and folders

DELETE

/favourites/folders

User permission required

Query parameters

NameValueOccurenceDefault
userIdID of user to deleteOnce-

Status codes

  • 200 = Bookmarks and Folders deleted
  • 401 = User not authorized
  • 404 = User ID not found
  • 500 = Internal server error

Related Use Case(s)

  • A user deletes his account. Then the system first deletes all bookmarks in all lists of the user. Then all lists including favorites are deleted.



API calls for Use Cases

UC01 | Add bookmark

Description

  • A user performs a search and a hit list appears. Now the user saves the object item as a bookmark.
  • The bookmark is always first saved in the main folder (favorites).

API mapping

  • FA01 | Create bookmark
    • POST /favourites/bookmarks
      • Send Bookmark-JSON in body



UC02 | Assign bookmarks to selected lists

Description

  • After saving a bookmark for the first time in favorites, a dialog appears that allows a user to continue adding the bookmark to other personal lists.
  • For this purpose, the user can select and confirm the additional desired lists.

API mapping

  • FA10 | Get all folders of a user
    • GET /favourites/folders?userId={userID}
      • Receive a FolderResult-JSON with all folders
    • FA07 | Add bookmark to list
      • POST /favourites/folders/{folderID}/bookmarks/{bookmarkID}



UC03 | Retrieve names of a user listDescription

  • After clicking favorites link in DDB a user should see his favorite lists to select one.

API mapping

  • FA10 | Get all folders of a user
    • GET /favourites/folders?userId={userID}



UC04 | Retrieve bookmarks of a list

Description

  • A user want to see a list and so he clicks to one of his lists.

API mapping

  • FA09 | Retrieve bookmarks of a list
    • GET /favourites/folders/{folderID}/bookmarks



UC05 | Add personal list

Description

  • A user creates a additional personal list.

API mapping

  • FA06 | Create list
    • POST /favourites/folders
      • Send Folder-JSON in body



UC06 | Delete bookmark

Description

  • A user deletes a bookmark in favorites, and so it will also be deleted in each of the personal lists.

API mapping

  • FA05 | Delete bookmark
    • DELETE /favourites/bookmarks/{bookmarkID}



UC07 | Change bookmark description

Description

  • A user adds, deletes or modifies the description of a bookmark.

API mapping

  • FA04 | Update bookmark (set only changes)
    • PUT /favourites/bookmarks/{bookmarkID}
      • Send Bookmark-JSON in body



UC08 | Copy bookmarks from All Favorites to personal lists

Description

  • A user copies a bookmark from the main list (favorites) to personal lists.

API mapping

  • FA07 | Add bookmark to another lists
    • POST /favourites/folders/{folderID}/bookmarks?bookmarkId={bookmarkID}



UC09 | Publish or privatize personal list

Description

  • A user publishes a list or make a published list private again.

API mapping

  • FA08 | Get list with properties
    • GET /favourites/folders/{folderID}
  • FA11 | Update list (set only changes)
    • POST /favourites/folders/{folderID}
      • Send Folder-JSON in body



UC10 | Change properties of personal list

Description

  • A user changes name, description, published/unpublished, name abbreviation from one of his personal lists.

API mapping

  • FA08 | Get list
    • GET /favourites/folders/{folderID}
  • FA11 | Update list (set only changes)
    • POST /favourites/folders/{folderID}
      • Send Folder-JSON in body



UC11 | Remove personal list with bookmarks

Description

  • A user deletes a personal list with the contained bookmarks. However, only the assignment of the bookmarks to the list is deleted.

API mapping

  • FA12 | Delete list
    • DELETE /favourites/folders/{folderID}



UC12 | Remove personal list and contained bookmarks in all lists

Description

  • A user additional deletes containing bookmarks of the list, also from all other lists, including the main list (favorites).

API mapping

  • FA12 | Delete list
    • DELETE /favourites/folders/{folderID}



UC13 | Remove bookmark in personal list

Description

  • A user deletes a bookmark from a personal list.

API mapping

  • FA13 | Remove bookmark from list
    • DELETE /favourites/folders/{folderID}/bookmarks/{bookmarkID}



UC14 | Copy bookmarks to other personal lists

Description

  • A user copies a bookmark from a personal list to other personal lists.
  • Since all bookmarks are always present in the All Favorites (favorites) list, copying from personal lists to this central list is not possible.

API mapping

  • FA07 | Add bookmark to other lists (for every list)
    • POST /favourites/folders/{folderID}/bookmarks



Model

Bookmark

Fields

FieldData typeDescription

id

String

ID of the bookmark (internal created by Elasticsearch)

itemId

String

ID of the DDB object item

description

String

User defined text to describe the list

userId

String

AAS/LDAP managed ID of the User

bookmarkType

String

Type of the bookmark

createdAt

Long

Creation date of the folder in millis created by the DDB Backend

updateAt

Long

Last Update date of the folder in millis created by the DDB Backend

keywordTool

KeywordTool

Optional data for internal use in APD (for keyword tool)

Description

  • Model object to hold a bookmark (= favorites)

Remarks

  • The possible types of a bookmark are:
    • CULTURAL_ITEM | INSTITUTION | ENTITY | NEWSPAPER | ARTICLE



Bookmark's KeywordTool

Fields

FieldData typeDescription
DoneBooleanUsed in APD

Description

  • Model object to hold and transfer APD internal data



BookmarkResult

Fields

FieldData typeDescription

query

String

Summary of the executed query (for debugging use)

total

Long

Total matches

offset

Long

Used offset (default or send by the request)

size

Long

Used size (default or send by the request)

bookmarks

List<Bookmark>

List of the found bookmarks by the query

Description

  • Model object to hold bookmarks (depends of offset and size) by the query



Folder

Fields

FieldData typeDescription

id

String

ID of the folder (internal created by Elasticsearch)

title

String

Title of the user list

description

String

User defined text to describe the list

userId

String

AAS/LDAP managed ID of the User

publishingName

String

User Identifier if the list is published

createdAt

Long

Creation date of the folder in millis created by the DDB Backend

updateAt

Long

Last Update date of the folder in millis created by the DDB Backend

bookmarkIds

Set<String>

List of related bookmarks IDs

institutionIds

Set<String>

List of related institution IDs

blockingToken

String

Optional token for internal use in APD

blocked

Boolean

If the list is blocked for public use

published

Boolean

If the list is published for public use

keywordTool

KeywordTool

Optional data for internal use in APD (for keyword tool)

Description

  • Model object to hold a folder (= favorites list and user defined lists)



Folder's KeywordTool

Fields

FieldData typeDescription

sentToAdmin

Boolean

Used in APD

Description

  • Model object to hold and transfer APD internal data



FolderResult

Fields

FieldData typeDescription

query

String

Summary of the executed query (for debugging use)

total

Long

Total matches

offset

Long

Used offset (default or send by the request)

size

Long

Used size (default or send by the request)

folders

List<Folder>

List of the found folders by the query

Description

  • Model object to hold found folders (depends of offset and size) by the query
  • No labels