...
Granular Access Control: Each REST endpoint can be individually secured, allowing you to enforce specific access permissions for different operations. This granular control helps prevent unauthorized access to sensitive data and ensures that only authorized users can perform certain actions.
Accurately Validating Input Parameters: By distributing functionality across multiple endpoints, you enhance the accuracy of input parameter validation. This approach minimizes the risk of improper data handling and helps maintain the integrity of the system, even if one endpoint encounters issues.
...
Endpoint
Load Distribution: With multiple endpoints, you can distribute the load more effectively. Different endpoints can be scaled independently based on demand, leading to better performance and resource utilization.
...
Find the
create-endpoint-4-template
endpoint, which is used for setting up new REST APIs for each SPARQL template.Click on the "Try it out" button to enable interactive usage of this endpoint.
Configure the Endpoint Details
In the
records
array, you will configure each CRUD operation as a separate object. Here’s how you can set up each endpoint for theEditorialObject
class:. You can copy and paste the following snippet into your post body as it creates the CRUD endpoint for theEditorialObject
class.Code Block language json { "records": [ { "endpoint": "editorialObject", "baseURL": "/v1", "endpointConfig": [ { "method": "get", "template": "readEditorialObject" }, { "method": "post", "template": "createEditorialObject" }, { "method": "patch", "template": "updateEditorialObject" }, { "method": "delete", "template": "deleteEditorialObject" } ] } ] }
Variable Descriptions
records: This array holds one or more configuration objects. Each object defines a set of CRUD operations associated with a specific endpoint.
endpoint: This string specifies the name of the endpoint. It acts as a part of the URL path where the API will be accessible. For example,
editorialObject
results in a REST endpoint that could be accessed via${baseURL}/editorialObject
.baseURL: This is the base path under which the endpoint will be grouped. For instance,
/v1
indicates that the endpoint will be accessed under the version 1 group, forming part of the complete URL path. For example,http://localhost/enapso-dev/view-management${baseURL}/${endpoint}
will becomehttp://localhost/enapso-dev/view-management/v1/editorialObject
.endpointConfig: An array of objects where each object specifies a CRUD operation and the associated settings:
method: The HTTP method (e.g.,
get
,post
,patch
,delete
) that determines what kind of operation this endpoint will perform. This corresponds to the CRUD operation:get
for reading or retrieving data,post
for creating new data,patch
for updating existing data,delete
for removing data.
template: The name of the SPARQL template that will be executed when this endpoint is called. It ties the REST API directly to a predefined SPARQL operation within the database management system.
After entering all the necessary details, click on the
Execute
button. A successful request will create REST endpoints for each configured operation.The response will indicate success, confirming that the endpoints are now set up and ready for use.
...
To create a new EditorialObject
, use the following curl
command to send a POST
request:
...
language | bash |
---|
...
. Ensure that the namedGraph
key and value (namedGraph
specifies the graph in the triplestore where your information is preserved), are included in the post body with the information you want to create. Passing the namedGraph
is necessary when using ENAPSO together free version.
Code Block | ||
---|---|---|
| ||
curl -X POST "http://localhost/enapso-dev/view-management/v1/editorialObject" -H "Content-Type: application/json" -d "{\"variablesnamedGraph\": {\"iri\": \"http://ont.enapso.com/sparql-template#EditorialObject_/ebucoreplus/demoData\",\"variables\": {\"iri\": \"http://ont.enapso.com/sparql-template#EditorialObject_2f9b1462-e937-4416-8c23-ce96fc42dc55\", \"title\": \"Never Look Away\", \"shotLog\": \"Visual storytelling that captures the protagonist artistic journey and the tumultuous history of Germany.\"}}" |
...
To update an existing EditorialObject
, use the following curl
command to send a PATCH
request with the IRI
and new values:
...
language | bash |
---|
...
. Make sure to include the namedGraph
key and value in the post body with the information you want to update. The namedGraph
specifies the graph in the triplestore where your information is preserved. Passing the namedGraph
is necessary when using ENAPSO together free version. otherwise, the update operation will not perform.
Code Block | ||
---|---|---|
| ||
curl -X PATCH "http://localhost/enapso-dev/view-management/v1/editorialObject" -H "Content-Type: application/json" -d "{\"variables\": {\"irinamedGraph\": \"http://ont.enapso.com/ebucoreplus/demoData\",\"variables\": {\"iri\": \"http://ont.enapso.com/sparql-template#EditorialObject_2f9b1462-e937-4416-8c23-ce96fc42dc55\", \"productionSynopsis\": \"Directed by Florian Henckel von Donnersmarck, this sweeping historical drama delves into themes of art, love, tragedy, and the inescapable impact of politics on personal lives.\"}}" |
...
To delete an EditorialObject
class instance, use the following curl command to send a DELETE
request:
Code Block | ||
---|---|---|
| ||
curl -X DELETE "http://localhost/enapso-dev/view-management/v1/editorialObject" -H "Content-Type: application/json" -d "{\"variables\": {\"iri\": \"http://ont.enapso.com/sparql-template#EditorialObject_2f9b1462-e937-4416-8c23-ce96fc42dc55\"}}" |
...
This command deletes the EditorialObject
identified by the given IRI
.
These curl
commands provide a direct way to interact with your RESTful API, enabling you to perform create
, read
, update
, and delete
operations on EditorialObject
CORS
Here we need to talk about:
Adding the CORS Plugin for Firefox, Chrome, Edge and Safari.
Configuring the CORS plugin. Here we need also to talk about that we need to support ALL HTTP Methods. In the default Config PATCH is not included!. Ensure that the namedGraph
key and value (namedGraph
specifies the graph in the triplestore where your information is preserved), is included in the post body with the variables
object in which you pass the IRI
of the instance you want to delete. Passing the namedGraph
is necessary when using ENAPSO together free version. Otherwise, the delete operation will not perform.
Code Block | ||
---|---|---|
| ||
curl -X DELETE "http://localhost/enapso-dev/view-management/v1/editorialObject" -H "Content-Type: application/json" -d "{\"namedGraph\": \"http://ont.enapso.com/ebucoreplus/demoData\",\"variables\": {\"iri\": \"http://ont.enapso.com/sparql-template#EditorialObject_2f9b1462-e937-4416-8c23-ce96fc42dc55\"}}" |
...
This command deletes the EditorialObject
identified by the given IRI
.
These curl
commands provide a direct way to interact with your RESTful API, enabling you to perform create
, read
, update
, and delete
operations on EditorialObject
CORS
Here we need to talk about:
Adding the CORS Plugin for Firefox, Chrome, Edge and Safari.
Configuring the CORS plugin. Here we need also to talk about that we need to support ALL HTTP Methods. In the default Config PATCH is not included!
Sure! Here is the updated text with the additional chapter on setting up CORS and configuring the CORS plugin:
Setting Up CORS for Your Web Client
When setting up a web client, it is essential to configure Cross-Origin Resource Sharing (CORS) to ensure your web application can communicate with the server across different origins. Here’s how to add and configure the CORS plugin for various browsers:
Adding the CORS Plugin for Firefox, Chrome, Edge, and Safari
Firefox
Go to the Firefox Add-ons website.
Search for "CORS" and find a suitable CORS plugin.
Click "Add to Firefox" and follow the installation prompts.
Chrome
Go to the Chrome Web Store.
Search for "CORS" and find a suitable CORS plugin.
Click "Add to Chrome" and follow the installation prompts.
Edge
Go to the Microsoft Edge Add-ons website.
Search for "CORS" and find a suitable CORS plugin.
Click "Add to Edge" and follow the installation prompts.
Safari
Go to the Safari Extensions Gallery.
Search for "CORS" and find a suitable CORS plugin.
Click "Install" and follow the installation prompts.
Configuring the CORS Plugin
After installing the CORS plugin, you need to configure it to support all HTTP methods, as the default configuration might not include methods like PATCH. Follow these steps:
Open the CORS Plugin Settings
Click on the CORS plugin icon in your browser toolbar.
Go to the settings or options page of the plugin.
Allow All HTTP Methods
Ensure all HTTP methods (GET, POST, PUT, DELETE, PATCH, etc.) are allowed.
Specifically, check and enable the PATCH method, as it might not be included by default.
Save the Configuration
Save your changes in the plugin settings.
Refresh your web application to apply the new CORS configuration.
By configuring the CORS plugin correctly, you ensure that your web client can make all necessary HTTP requests to the server without encountering CORS-related issues. This setup is crucial for the smooth functioning of your web application, especially when dealing with CRUD operations.
Summary
This setup enables you to fully utilize the RESTful interface of the ENAPSO together free platform, integrating seamlessly with your existing workflows and enhancing data manipulation capabilities through programmatically accessible endpoints. By following these steps, users can effectively create and manage REST APIs for CRUD operations, empowering them to perform sophisticated data interactions directly through HTTP requests.