The repository for the Europeana User Sets API
Licensed under the EUPL V.1.2
For full details, see LICENSE.md.
The repository for the Europeana User Sets API
License: European Union Public License 1.2
The repository for the Europeana User Sets API
Licensed under the EUPL V.1.2
For full details, see LICENSE.md.
The mandatory constraint to the title but only for sets that have type BookmarkFolder.
We need to cover different levels of visibility. The following states have been considered:
The dereferenciation for closed sets should be limited to max 100 items, the max size of items in the response of a search api request
https://europeana.atlassian.net/browse/EA-2197
Update list items adding new values if not already in the list.
The total field should be always returned in response
Update the validation method to make sure that the value submitted by the client is one of the values available in enumeration, for visibility and type. Otherwise respond with 400.
Validation for user sets (update and insert items)
See also: https://europeana.atlassian.net/browse/EA-1987
Implement header validation and parsing to profile.
Implement update method for an existing Set (finding it by identifier) using template JSON content, optionally made out of title, type and description for such Set.
Add the property to be used to differentiate user sets that are favorites from other kinds of user sets
Only 1 set per user should have the type=”BookmarkFolder”. We must cover this with a restriction.
Also support in search.
The delete should become permanent and deprecated functionality is no longer in place
Profile parameter is required by each method either by header or as HTTP request parameter.
Implement java client for testing user sets api.
Set explicitly the allow-credentials option in configurations,
Test create user set method from set-client module against Sets API.
when page size is set to 0 in the set search all sets are returned, the API must prevent using pageSize 0
Check user credentials, if invalid respond with HTTP 401 or if unauthorized respond with HTTP 403;
Check timestamp if provided within the “If-Match” HTTP header, if false respond with HTTP 412;
Retrieve a Set based on its identifier;
If the Set doesn’t exist, respond with HTTP 404;
If the Set is disabled and the user is not an admin, respond with HTTP 410;
If the user is an Administrator then permanently remove item (and all items that are members of the Set), otherwise flag it as disabled;
Respond with HTTP 204
Implement changes to the creation and update methods to support indicating items as part of the isDefinedBy property and not within the "ïtems" field.
https://europeana.atlassian.net/browse/EA-2140
including relatex bugfixes like:
https://europeana.atlassian.net/browse/EA-2188
The response of POST, GET and UPDATE methods should return the "creator" field
The java version needs to be updated to 1.9
The admin should be allowed to perform any operation, that an user can. The isOwnerOrAdmin has to be enabled for all update (PUT) and delete methods.
This error message should be updated to refer to sets, not annotations.
The search entity must implement support for custom selection of fields to be included in the response.
fl parameter must include the coma separated list of fields to be included in the response. When fl parameter is used, only these fields must be returned in list of items.
Implement method to retrieve UserSet in set-api-client. Create JUnit test where a user set is created, extracted it's id and using extracted id retrieve user set.
Implement create set method for the serialization and deserialization of the User Set.
The new profile will be named "itemDescriptions" and correspond to the Prefer header: “oa:preferContainedDescription”.
The URL should use the production Search API. We could also make a GET upon creation to see if the request returns a 200 (meaning is valid).
the access to private sets requires the ownership verification, therefore the verifyReadAccess must return the Authentication object.
see https://europeana.atlassian.net/browse/EA-2079
Entity API: Implement web method for retrieval of User Sets by identifier. An identifier is a number in string format. Identifier is presented in GUI as an URI, where identfier is extended by base URI.
Validate that apiKey is not null and not empty, throw 401 exception otherwise.
For the MVP the following modules are needed
set-definitions
set-common
set-mongo
set-web
The dependency from et-search-api-client to commons-web is not allowed, it must be removed
Check if an item is already present in an existing Set
updated to new snapshot version
Following the release of KeyCloak, update the Sets API to accept tokens issued by KeyCloak and use the information in the JWT token to validate authorization.
migrate to employ Jwt Token and input from Json files from client.
Implement field ordering for better readability of the data. The fields should follow a specific order.
The order of the fields must be the following (not all fields are applicable for all methods):
context
id
type
title
description
(other metadata fields...)
creator (not implemented for now)
created
modified
items
first
last
total
Address SonarQube issues: https://europeana.atlassian.net/browse/EA-2169
Delete an item from a set using following parameters:
"IDENTIFIER": the local identifier for the Set.
"DATASET_ID": identifier of the dataset, typically a number.
"LOCAL_ID": local identifier within the provider.
“wskey” and “userToken” (HTTP Parameters).
Template project for API:
https://github.com/europeana/api-template/tree/master/src/test/java/eu/europeana/api/myapi/web - Connect to preview
Example from Thumbnail testing:
For this purpose, given the issues in eclipse with test dependencies, we have to create a new project “set-integration-testing” and write the first test for creating a new user set.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.