Summary
The REST/JSON web services connector offers all the capabilities needed to connect to such sources. This option allows you to collect data from REST/JSON web services or configure writing actions, and then create data views and exhibit them in your API.
To connect to a web service, you must go to Data Origins > REST/JSON
Basic concepts
The REST (Representational state transfer) represents a definition of software architecture design which, when it meets all its specifications, is called RESTful.
The JSON term raises the application and response format that the service would deliver.
URL or endpoint
Any HTTP request requires a URI relating to a resource or entity. The most well-known form of URIs is URLs, which are composed of the following syntax:
Segment
| Description
|
Protocol
|
In this case the protocol is HTTP or HTTPS. e.g. : https://
|
Domain
|
The domain name indicates the address of the service. e.g. : api.example.com. Alternatively, an IP address may be used instead of a domain.
|
Port
|
The port indicates the door through which the service would be accessed. In HTTP cases, port 80 is used by default and when HTTPS port 443, It is not necessary to specify the port in connections to services. |
Access route
|
The path, or path, defines the path to the service resource. e.g. : /accounts/v1/invoices
|
Parameters
|
In the context of a URI per similar means query-params, which are sent after the symbol "?". Parameters are a list of key-value pairs separated by the "&" symbol. e.g. : ?accountId=99&year=2022&status=3
|
On the basis of the detailed and example indicated, the complete URI of the service is:
Methods of requests or application
REST/JSON web services use the HTTP protocol to make transfers, so they make use of their request or request methods.
Application methods indicate the type of action to be taken on a particular resource. Thus, they can be thought of as verbs: consult, create, modify, delete, etc.
The most used methods in REST/JSON web service requests are as follows:
Type of application
| Description
|
Get
|
The GET method is used to consult or obtain source data.
|
Post
| The POST method is normally used to send a resource or entity to the origin, i.e. to create a new record.
Despite this, there may be methods that do not make changes in origin but are used to obtain data.
|
Put
|
The PUT method is used to change the entirety of an entity at source.
|
Patch
|
The PATCH method is used to apply partial modifications to an entity at source.
|
Delete
|
The DELETE method is used to delete or delete an entity or resource at source.
|
Even these are the standard definitions, the web service may not conform to these specifications. That is why it must be taken as a reference and to know what type of application the web service expects.
HTTP headers allow you to send additional information in the request and receive additional information in the response. The headers are composed of a name and value.
Corps of application
The body of the request (or body) is information that is sent to the origin upon consultation.
The body of the request has a direct relationship with the Content-Type header indicating the type of content that is sent in the request.
Authentication and authorization schemes
A REST/JSON web service may require some specific type of authentication and/or authorization, or none.
These can be classified into:
No authorization
Basic authorization (Basic Auth)
Bearer token
Type of authorization
| Description
|
No authorization
|
The method does not require any authentication and authorization.
|
Basic Auth
|
The basic authorization consists of a user and contrast to be sent in the application to the service on a basis64.
|
Authorization, API Key, Token or others
|
One common way to protect web services is through a authorization key. This key can assume the name Token, API Key or others.
The key is usually sent in the Authorization header and can be preceded by a prefix.
For example, the most exhausted case is using the above-mentioned header: Authorization: Bearer XYZXYZ. |
Security Token Service (STS), OAuth20 or two-step authentication
|
A service can be protected under an STS scheme, OAuth20 or authentication in two steps. This means that before executing the service consultation, another method must be executed to obtain a token and then use that token to consult the service. In that respect, it is two-step authentication.
|
The basic concepts described above were intended to understand how it may be required to set up a REST/JSON service on the platform.
It would now explain how to set up such services in Workspace.
The configuration can be divided into the request to be made at the service and in the processing of its response.
Request
In order to set up the request for web service you should consider the following aspects. Once the setup has been made, you should click on the Test button to make the request.
Method of application
You should indicate the method or type of application: GET, POST, PUT, PATCH or DELETE.
Endpoint or URL
You should enter the endpoint or URI.
If required, you could map endpoint segments and then set them as parameters of the method or relate them to context variables.
The functionality of
Add mapping allows you to configure URL segments as parameters. For example, the route of our origin is
https://api.vor-tex.io/accounts/v1/users/{{userId}}, where "{{userId}}" represents a variable that we must state as a matter of a method so that its value can be changed in the application.
You must click on the button Add mapping and enter a Mapping Name that would be the name of the parameter and a default value. Then click Confirm.
Available Maps would be displayed and in the URL of the Origin, you should add the name of the mapping between double keys in the appropriate position. In this case, {{userId}} is the name of mapping.
When creating the data view, it would display the "userId" parameter and could add the validations if applicable.
You can add multiple mapping on a source path.
If the service requires some type of authorization, you should configure it.
You can configure:
- Basic Authorization
- Bearer Token
- Security Token Service (STS)
Basic Auth
Basic Auth meditating can be authenticated, where a user and password are used. The platform would generate the value of 'user: contradictory' encoded on a basis64 to send it properly in this type of authentication:Authorization: Basic Zm9vOmJhcg==
Bearer Token
If the service was protected by an access token with Bearer prefix you must use this option.
Security Token Service (STS)
This form of authentication is to make a pre-application request for data for a token. This is the type of authentication of the OAuth20 standard, although the platform is flexible for services that do not conform to that standard.
Once the option is selected, you should click Configure.
This screen would be displayed where you could set up the token request and process your response.
It should indicate compulsory the path token using a JsonPath, and if the route is informed in the response at the time of expiry of the token.
You could define the type of content of the resolution, that is, Content-Type.
And it could add the parameters that are required in the application.
By saving the configuration, you would return to the home application configuration screen.
By default, the token obtained would be sent in the Authorization cap with the Bearer prefix and token value. You can change the value of the prefix if necessary.
If the service requires the sending of specific headers in the application, it should configure them.
Headers may be non-edited (default), editable or mapping on a segment of their value. If editable or add mapping, you could expose them as parameters or headers of your API method and assign them to context variables.
Request body
The body of the request is part of the content that would be sent in the request and relates to the type of content or Content-Type.
You could select between the different types of content and then add parameters.
application/json
For example, in the following case represented in cURL it is a POST method that requires the shipment of a body-json:
--header'Content-Type: application/json'\
--data-raw'{
"accountId": 99,
"date":"2022-08-01"
}'
For configure this web service as a data source, we must select the type of POST request and Content-Type application/json. This would enable the option to enter the body or body of the request.
If requires that the values of the attributes of the request body be editable parameters in the API data view and method, we must use the functionality ofAdd mapping.
Must click on the button Add mapping and enter a Mapping name which would be the name of the parameter and a default value. Then click on Add.
The
Available maps and in the application, you should add the name of mapping between double keys in the position that appropriate.
The name of the mapping would be the name of the data view parameters and of APIs methods. The names of parameters can be equal to or different from the attributes of the request json. This allows you to change the names of your parameters more flexibly.
application/x-www-form-urlencoded and multipart/form-data
If you select these content type options, then you should add the parameters in the tab Parameters.
Parameters
Parameters of the request are part of the content to be sent in the request to the service and the type of content or body of the requested request is related.
If you do not select a type of content, the added parameters would be sent in query-string, i.e. in the form api.example.com/method/key
Query parameters can be defined as pairs key-value optional which appear after the question mark on the URL. Basically, are URL extensions used in service execution web.
Query parameters are added at the end of the URL with a "?". The question mark is used to separate the route and query parameters.
In that case, should be entered into Name "anio" and value "1999", and do the same for "month". If you select the option "The value would bewill be displayed as an editable value in the data view and your API methods. In that way, being editable, the end user could change those values.
Do not enter editable parameters containing tokens or access keys to the web service.
Reading or writing actions
Independently of the type of request made to the web service, you can define the kind of action you were doing. This allows you to avoid executions of writing unwanted to origin. By default, the Reading option. Only if you were taking action to writing should select that option.
Answer
Once the application settings have been completed and having obtained the answer through the Test button, you could begin work on the processing of the response.
The aim of the following settings to process the response to obtain the required data in a tabular format, then to apply transformations and enrichment in the data view. However, you could always state if you wish the answer as received from the service, without transformation (see method formats).
Route to data (or path to data)
What is the JsonPath?
JsonPath uses a special annotation to represent nodes and their connections to adjacent nodes on a JsonPath route.
JsonPath uses a special annotation to represent nodes and their connections to adjacent nodes on a JsonPath route. The sign "$" represents the strict object.
This would see a technical annotation:
You can use
esta toolto evaluate your JsonPath if you have doubts.
In short, the JsonPath allows you to define which element of the Json response of the web service would be tabulated in the data view.
For example, if your web service response is as follows, your JsonPath would be $.result
{"meta":{"status":"ok","lenght":6},"result":[ [ [ [ [ [ [ [ []{"account":{"base_uri":"https://vor-tex.io","is_active":true,"account_id":33 33 33 33,"account_name":"Vor-Tex"},"surname":"Doe","name":"John","created":"2020-04-10T11:22:54.332"
...
You can preview the respect with the button below:
Now, as can be seen, cells containing JSON objects, since the structure of the response contains nested. You can leave it that way, or you can extract data from objects by evaluating path to data.
Evaluate path to data
You should enter the nodes you want to access. The same should be separated by | (pipe/side bar) and in the case of access the children of a node should be used. (point).
For example, using the answer example above you can select each attribute.
The tabulated preview would thus be:
Web services often report the terms, headers or attributes of the data. This configuration would allow you to define the headers of your data view.
In the examples above, the value item is informed as attributes. In that case, you must select "Yes, they are the attributes"
If you are on a different path than the data, the route to the headers should be configured following the JsonPath criterion explained above.
If your web service has no securities titles/headers, don't worry, you could add headers in the data view.
Response validation
It is an optional configuration that allows you to enter additional validation to see whether the response delivered is actually as expected, as it may be informed in any of its attributes that was not the case.
Extended fields
Extended fields are used to extract data outside the data table and headers. For each field you must enter its name, description and route.
Following the example of the previous answer, the path to obtain the value of the "lenght" attribute would be "$.meta.lenght".
Once your web service has been set up, you should click Continue and complete the metadata that would allow you to find then its data source and keep its resources tidy.
The data source is created by default in draft state.
Frequency of updating
In the second step, by completing metadata, you could define the frequency of updating your data.
This is the first level of management of the platform. We suggest selecting the option that corresponds to the frequency of updating of the data at source.
For example, if the data is updated every hour, select the"Every hour". If they are daily update data, for example financial indicators, select the "Daily" option
With the option "Other" you can enter a specific timetable.
If you do not know which option to select, do not select any or select "Under demand".
So far it has configured its data source from the web service. You should now create a data view to continue the process.