WMarket is the reference implementation of the FIWARE Marketplace Generic Enabler. The Marketplace provides functionality necessary for bringing together offering and demand for making business. These functions include basic services for registering business entities, publishing and retrieving offerings and demands, search and discover offerings according to specific consumer requirements as well as lateral functions like review, rating and recommendation. Besides the core functions, the Marketplace may offer value because of its "knowledge" about the market in terms of market intelligence services, pricing support, advertising, information subscription and more.
This is a work in progress and is changing on a daily basis. You can check the latest available version on: https://github.com/conwetlab/WMarket/tree/develop. Please send your comments to wmarket@conwet.com.
This specification is licensed under the FIWARE Open Specification License
Each HTTP request against the Marketplace API requires the inclusion of specific authentication credentials. The specific implementation of this API may support multiple authentication schemes (OAuth, Basic Auth, Token) and will be determined by the specific provider that implements the GE. Please contact the provider to determine the best way to authenticate against this API. Remember that some authentication schemes may require that the API operates using SSL over HTTP (HTTPS).
WMarket provides support for Basic, Cookie and OAuth2 authentication being OAuth2 the default in FIWARE Lab.
Error responses will be encoded using the most appropriated Content-Type
in base to the Accept
header of the request.
JSON Example
{
"error": {
"type": "NOT_FOUND",
"message": "User no_user not found"
}
}
XML Example
<?xml version="1.0" encoding="utf-8"?>
<error>
<message>User no_user not found</message>
<type>NOT_FOUND</type>
</error>
HTTP Code | Type | Description |
---|---|---|
200 | OK | Your request has been completed properly |
201 | Created | Your resource has been created. The Location header will contain the final URL that users can use to access this resource |
204 | No content | Your request has been processed, but a response is not available. Generally used when deleting entities or bookmarking offerings |
400 | Bad Request | The content of your request is not correct (e.g. there is already a resource with the specified name) |
400 | Validation Error | One or more fields of your content is not valid. The field field indicates the first field with a validation error |
403 | Forbidden | You have no rights to perform the query |
404 | Not found | The resource does not exist |
500 | Internal server error | There was an internal error in the system so your request cannot be completed |
API to create, retrieve, edit and delete user accounts.
When you are creating or updating a user, you can set the following fields:
displayName - The display name of the user (the one used in the UI). This field will be used to automatically generate the userName
email - The user's email account. This field is hidden and it will not be returned in GET requests. Used for logging purposes
password - The user's password. This field is hidden and it will not be returned in GET requests
company - (optional) The user's company
However, some additional fields will be automatically generated for you:
userName - unique user identifier based on user's display name. Users can also use this field to identify themselves
imageUrl - link to Gravatar based on user's mail
createdAt - Date of creation
API to create, retrieve, edit and delete Stores.
When you are creating or updating a store, you can set the following fields:
displayName - The display name of the Store (the one used in the User Interface). This field will be used to automatically generate the store identifier (name)
url - The URL where the store is located
comment - (optional) Additional information about the Store
imageBase64 - (optional) You can add an image to your store by coding it in Base64
However, some additional fields will be automatically generated for you:
name - Unique store identifier based on the display name of the Store
imagePath - The relative path that can be used to retrieve the image of the Store
createdAt - Date of creation
creator - The user that created the Store
lastEditor - The last user that updated the Store
averageScore - Based on the reviews made by users
Stores can be reviewed so other users can easily know which stores can be trusted. One user can only review one store once. To review a store, the user should send the following fields:
score: 3 (required, int) - a number between 1 or 5 where 1 means "I really hate this Store" and 5 means "I really like this Store"
comment: Example (optional, string) - A brief explanation for your score
API to create, retrieve, edit and delete Descriptions.
When you are creating or updating a description, you can set the following fields:
displayName - the display name of the Description (the one used in the User Interface). This field will be used to automatically generate the description identifier (name)
url - The URL where the description is located. This URL must be accessible by the server and should point to a RDF file
comment - (optional) Additional information about the Description
However, some additional fields will be automatically generated for you:
name - Description identifier based on the display name of the Description. One store cannot host two descriptions with the same name, but two different stores can host two descriptions with the same name
createdAt - Date of creation
updatedAt - Date of the last update
creator - The user that created the Description
lastEditor - The last user that updated the Description
In some cases, users can be interested in retrieving all the descriptions which have been registered into the MaketPlace without taking into account the store used to register these descriptions.
ParametersWhen descriptions are correctly created and the contained USDL is parsed, the offerings contained in this USDL file will be accessible through a REST API. At this point, users will be able to interact with these offerings to obtain their details and much more (bookmarking, reviewing...).
Here is the list with all the information that is gathered from an offering:
displayName - The display name of the Offering (the one used in the User Interface).
name - Offering identifier based on the display name of the Offering. One description cannot contain two offerings with the same name, but two descriptions can contain two offerings with same name
description - Additional information about the Offering
uri - The URI to identify the offering within the USDL
describedIn - The description where the offering is contained
imageUrl - URL which points to an image that will help to identify the offering more easily
acqusitionUrl - URL which points to the Store page where the offering can be acquired
views - Number of times which the offering has been viewed
averageScore - Based on the reviews made by users
describedIn - The description where the offering is described
pricePlans - The price plans that can be used to acquire the offerings. Each price plan can contain zero or more price components
services - All the services included in the offering
categories - Based on the categories of the services included in the offering
Users can also retrieve details of a specific offering.
ParametersUsers can bookmark offerings so they can access their favourite ones in a very easy way. This endpoint can be used to both bookmark and unbookmark a specific offering depending on its previous state: if the offering is already bookmarked, it will be unbookmarked; if the offerings is not bookmarked, it will be bookmarked.
ParametersOfferings, as stores, can be reviewed. One user can only review an offering once. To review an offering, the user should send the following fields:
score: 3 (required, int) - a number between 1 or 5 where 1 means "I really hate this Offering" and 5 means "I really like this Offering"
comment: Example (optional, string) - A brief explanation for your score
In some cases, users can be interested in retrieving all the offerings which have been registered into the MaketPlace without taking into account the store and/or the description used to register these offerings.
ParametersThe system register the last 10 offerings viewed by each user and these offerings can be retrieved using an API.
ParametersBased on the offerings viewed by other users, the system can return the list of offerings that are trending now because there are users are interested in them. This data is anonymized, so other users cannot retrieve the list of offerings viewed by a specific user.
ParametersOfferings have some attached categories. The service will allow users to retrieve all the categories that have been created and all the offerings that belong to each existing category. Based on this, users can retrieve a list of suggestions for each category according to the reviews made by other users.
Each category contains the following information:
displayName: The display name of the category (the one that will be used in the GUI)
name: Unique identifier for the category. It is based on the display name
Headers
Content-Type: application/json
Accept: application/json
Body
{
"displayName": "Example Display Name",
"email": "example@example.com",
"password": "example_complex_password",
"company": "Example Company"
}
Headers
Location: http://marketplace.lab.fiware.org/api/v2/user/example-display-name
Headers
Content-Type: application/json
Body
{
"error": {
"message": "This field must be a valid email.",
"type": "VALIDATION_ERROR",
"field": "email"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"users": [
{
"userName": "aitor",
"displayName": "Aitor",
"imageUrl": "https://secure.gravatar.com/avatar/149dd094923c17d1fce7231c45296357?d=identicon",
"createdAt": 1436170938000
}
]
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"userName": "aitor",
"displayName": "Aitor",
"imageUrl": "https://secure.gravatar.com/avatar/149dd094923c17d1fce7231c45296357?d=identicon",
"createdAt": 1436170938000
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "User aitor not found",
"type": "NOT_FOUND"
}
}
Headers
Content-Type: application/json
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Body
{
"displayName": "Example Display Name",
"email": "example@example.com",
"password": "example_complex_password",
"company": "Example Company"
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "This field must be a valid email.",
"type": "VALIDATION_ERROR",
"field": "email"
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "You are not authorized to update user aitor",
"type": "FORBIDDEN"
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "User aitor not found",
"type": "NOT_FOUND"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"error": {
"message": "You are not authorized to delete user aitor",
"type": "FORBIDDEN"
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "User aitor not found",
"type": "NOT_FOUND"
}
}
Headers
Content-Type: application/json
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Body
{
"displayName": "WStore",
"url": "http://example.com",
"comment": "Example comment",
"imageBase64": "PNG_IMAGE_IN_BASE64"
}
Headers
Location: http://marketplace.lab.fiware.org/api/v2/store/wstore
Headers
Content-Type: application/json
Body
{
"error": {
"field": "name",
"type": "VALIDATION_ERROR",
"message": "This name is already in use."
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"stores": [
{
"averageScore": 3.7,
"url": "http://example.com",
"displayName": "WStore",
"name": "wstore",
"comment": "Example Comment",
"createdAt": 1437390486000,
"lasteditor": "USER_NAME",
"creator": "USER_NAME",
"imagePath": "media/store/STORE_NAME.png"
}
]
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"averageScore": 3.7,
"url": "http://example.com",
"displayName": "WStore",
"name": "wstore",
"comment": "Example Comment",
"createdAt": 1437390486000,
"lasteditor": "USER_NAME",
"creator": "USER_NAME",
"imagePath": "media/store/STORE_NAME.png"
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Store wstore not found",
"type": "NOT_FOUND"
}
}
Headers
Content-Type: application/json
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Body
{
"displayName": "WStore",
"url": "http://example.com",
"comment": "Example comment",
"imageBase64": "PNG_IMAGE_IN_BASE64"
}
Headers
Content-Type: application/json
Body
{
"error": {
"field": "name",
"type": "VALIDATION_ERROR",
"message": "This name is already in use."
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "You are not authorized to update store wstore",
"type": "FORBIDDEN"
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Store wstore not found",
"type": "NOT_FOUND"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"error": {
"message": "You are not authorized to delete store wstore",
"type": "FORBIDDEN"
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Store wstore not found",
"type": "NOT_FOUND"
}
}
Headers
Content-Type: application/json
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Body
{
"score": 5,
"comment": "Example Comment"
}
Headers
Location: http://marketplace.lab.fiware.org/api/v2/store/{store_name}/review/0
Headers
Content-Type: application/json
Body
{
"error": {
"field": "score",
"type": "VALIDATION_ERROR",
"message": "Score should be an integer between 1 and 5."
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"type": "FORBIDDEN",
"message": "You are not authorized to review Store. An entity can only be reviewed once"
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"type": "NOT_FOUND",
"message": "Store wstore not found"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"reviews": [
{
"id": 1,
"score": 5,
"user": "USER_NAME",
"comment": "Example Comment",
"createdAt": 1435248117000,
"updatedAt": 1435248117000
}
]
}
Headers
Content-Type: application/json
Body
{
"error": {
"type": "NOT_FOUND",
"message": "Store wstore not found"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"id": 1,
"score": 5,
"user": "USER_NAME",
"comment": "Example Comment",
"createdAt": 1435248117000,
"updatedAt": 1435248117000
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Review 0 not found in Store wstore",
"type": "NOT_FOUND"
}
}
Headers
Content-Type: application/json
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Body
{
"score": 5,
"comment": "Example Comment"
}
Headers
Content-Type: application/json
Body
{
"error": {
"field": "score",
"type": "VALIDATION_ERROR",
"message": "Score should be an integer between 1 and 5."
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "You are not authorized to update review 0 in Store wstore",
"type": "FORBIDDEN"
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Review 0 not found in Store wstore",
"type": "NOT_FOUND"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Review 0 not found in Store wstore",
"type": "NOT_FOUND"
}
}
Headers
Content-Type: application/json
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Body
{
"displayName": "Offerings1",
"url": "http://example.com/some.rdf",
"comment": "Example comment"
}
Headers
Location: http://marketplace.lab.fiware.org/api/v2/store/wstore/description/offering-1
Headers
Content-Type: application/json
Body
{
"error": {
"field": "url",
"type": "VALIDATION_ERROR",
"message": "Your RDF could not be parsed."
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"type": "NOT_FOUND",
"message": "Store wstore not found"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"descriptions": [
{
"id": 5,
"url": "http://example.com/some.rdf",
"name": "offerings1",
"displayName": "Offerings1",
"createdAt": 1437398271000,
"updatedAt": 1437398936000,
"store": "wstore",
"lasteditor": "aitor",
"creator": "aitor",
"offerings": []
}
]
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"id": 5,
"url": "http://example.com/some.rdf",
"name": "offering-1",
"displayName": "Offering 1",
"createdAt": 1437398271000,
"updatedAt": 1437398936000,
"store": "wstore",
"lasteditor": "aitor",
"creator": "aitor",
"offerings": []
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Description offerings1 not found",
"type": "NOT_FOUND"
}
}
Headers
Content-Type: application/json
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Body
{
"displayName": "Offerings1",
"url": "http://example.com/some.rdf",
"comment": "Example comment"
}
Headers
Content-Type: application/json
Body
{
"error": {
"field": "url",
"type": "VALIDATION_ERROR",
"message": "Your RDF could not be parsed."
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "You are not authorized to update description offerings1",
"type": "FORBIDDEN"
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Description offerings1 not found in Store wstore",
"type": "NOT_FOUND"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"error": {
"message": "You are not authorized to delete description offerings1",
"type": "FORBIDDEN"
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Description offerings1 not found in Store wstore",
"type": "NOT_FOUND"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"descriptions": [
{
"id": 5,
"url": "http://example.com/some.rdf",
"name": "offerings1",
"displayName": "Offerings1",
"createdAt": 1437398271000,
"updatedAt": 1437398936000,
"store": "wstore",
"lasteditor": "aitor",
"creator": "aitor",
"offerings": []
}
]
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"offerings": [
{
"averageScore": 0,
"name": "offering1",
"displayName": "Offering1",
"uri": "http://130.206.81.113/FiwareRepository/v1/storeOfferingCollection/offering1#off",
"description": "Example Description",
"version": "1.0",
"describedIn": {
"name": "offerings1",
"store": "wstore"
},
"imageUrl": "IMAGE_URL",
"acquisitionUrl": "ACQUISITION_URL",
"views": 1,
"pricePlans": [],
"services": [],
"categories": []
}
]
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Description offerings1 not found in Store wstore",
"type": "NOT_FOUND"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"averageScore": 0,
"name": "offering1",
"displayName": "Offering1",
"uri": "http://130.206.81.113/FiwareRepository/v1/storeOfferingCollection/offering1#off",
"description": "Example Description",
"version": "1.0",
"describedIn": {
"name": "offerings1",
"store": "wstore"
},
"imageUrl": "IMAGE_URL",
"acquisitionUrl": "ACQUISITION_URL",
"views": 1,
"pricePlans": [
{
"title": "Price Plan Title",
"comment": "Price Plan Comment",
"priceComponents": [
{
"title": "Price Component Title",
"comment": "Price Component Comment",
"value": 8,
"currency": "Price Component Currency",
"unit": "Price Component Unit"
}
]
}
],
"services": [
{
"displayName": "Service Name",
"comment": "Service Description",
"categories": [
{
"name": "category-name",
"displayName": "Category Name"
}
]
}
],
"categories": [
{
"name": "category-name",
"displayName": "Category Name"
}
]
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Offering offering1 not found in description offerings1 (Store: wstore)",
"type": "NOT_FOUND"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Offering offering1 not found in description offerings1 (Store: wstore)",
"type": "NOT_FOUND"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"offerings": [
{
"averageScore": 0,
"name": "offering1",
"displayName": "Offering1",
"uri": "http://130.206.81.113/FiwareRepository/v1/storeOfferingCollection/offering1#off",
"description": "Example Description",
"version": "1.0",
"describedIn": {
"name": "offerings1",
"store": "wstore"
},
"imageUrl": "IMAGE_URL",
"acquisitionUrl": "ACQUISITION_URL",
"views": 1,
"pricePlans": [],
"services": [],
"categories": []
}
]
}
Headers
Content-Type: application/json
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Body
{
"score": 5,
"comment": "Example Comment"
}
Headers
Content-Type: application/json
Location: http://marketplace.lab.fiware.org/api/v2/store/{store_name}/description/{description_name}/offering/{offering_name}/review/0
Headers
Content-Type: application/json
Body
{
"error": {
"field": "score",
"type": "VALIDATION_ERROR",
"message": "Score should be an integer between 1 and 5."
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"type": "FORBIDDEN",
"message": "You are not authorized to review Offering. An entity can only be reviewed once"
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"type": "NOT_FOUND",
"message": "Offering offering-1 not found"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"reviews": [
{
"id": 1,
"score": 5,
"user": "USER_NAME",
"comment": "Example Comment",
"createdAt": 1435248117000,
"updatedAt": 1435248117000
}
]
}
Headers
Content-Type: application/json
Body
{
"error": {
"type": "NOT_FOUND",
"message": "Offering offering-1 not found"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"id": 1,
"score": 5,
"user": "USER_NAME",
"comment": "Example Comment",
"createdAt": 1435248117000,
"updatedAt": 1435248117000
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Review 0 not found in Offering offering1 (Description: offerings1, Store: wstore)",
"type": "NOT_FOUND"
}
}
Headers
Content-Type: application/json
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Body
{
"score": 5,
"comment": "Example Comment"
}
Headers
Content-Type: application/json
Body
{
"error": {
"field": "score",
"type": "VALIDATION_ERROR",
"message": "Score should be an integer between 1 and 5."
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "You are not authorized to update review 0 in Offering offering1 (Description: offerings1, Store: wstore)",
"type": "FORBIDDEN"
}
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Review 0 not found in Offering offering1 (Description: offerings1, Store: wstore)",
"type": "NOT_FOUND"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Review 0 not found in Offering offering1 (Description: offerings1, Store: wstore)",
"type": "NOT_FOUND"
}
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"offerings": [
{
"averageScore": 0,
"name": "offering1",
"displayName": "Offering1",
"uri": "http://130.206.81.113/FiwareRepository/v1/storeOfferingCollection/offering1#off",
"description": "Example Description",
"version": "1.0",
"describedIn": {
"name": "offerings1",
"store": "wstore"
},
"imageUrl": "IMAGE_URL",
"acquisitionUrl": "ACQUISITION_URL",
"views": 1,
"pricePlans": [],
"services": [],
"categories": []
}
]
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"offerings": [
{
"averageScore": 0,
"name": "offering1",
"displayName": "Offering1",
"uri": "http://130.206.81.113/FiwareRepository/v1/storeOfferingCollection/offering1#off",
"description": "Example Description",
"version": "1.0",
"describedIn": {
"name": "offerings1",
"store": "wstore"
},
"imageUrl": "IMAGE_URL",
"acquisitionUrl": "ACQUISITION_URL",
"views": 1,
"pricePlans": [],
"services": [],
"categories": []
}
]
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"offerings": [
{
"averageScore": 0,
"name": "offering1",
"displayName": "Offering1",
"uri": "http://130.206.81.113/FiwareRepository/v1/storeOfferingCollection/offering1#off",
"description": "Example Description",
"version": "1.0",
"describedIn": {
"name": "offerings1",
"store": "wstore"
},
"imageUrl": "IMAGE_URL",
"acquisitionUrl": "ACQUISITION_URL",
"views": 1,
"pricePlans": [],
"services": [],
"categories": []
}
]
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"categories": [
{
"name": "dataset",
"displayName": "Dataset"
}
]
}
Headers
Accept: application/json
Authorization: Bearer YOUR_OAUTH2_TOKEN
Headers
Content-Type: application/json
Body
{
"offerings": [
{
"averageScore": 0,
"name": "offering1",
"displayName": "Offering1",
"uri": "http://130.206.81.113/FiwareRepository/v1/storeOfferingCollection/offering1#off",
"description": "Example Description",
"version": "1.0",
"describedIn": {
"name": "offerings1",
"store": "wstore"
},
"imageUrl": "IMAGE_URL",
"acquisitionUrl": "ACQUISITION_URL",
"views": 1,
"pricePlans": [],
"services": [],
"categories": []
}
]
}
Headers
Content-Type: application/json
Body
{
"error": {
"message": "Category dataset not found",
"type": "NOT_FOUND"
}
}
The editors would like to express their gratitude to the following people who actively contributed to this specification: Francisco de la Vega and Álvaro Arranz García