diff --git a/docs/aditional-information/migration-page.md b/docs/aditional-information/migration-page.md
index d7c6f8227..8257ad742 100644
--- a/docs/aditional-information/migration-page.md
+++ b/docs/aditional-information/migration-page.md
@@ -12,4 +12,5 @@ nav_order: 3
In this page you can view migration guides for specific versions where additional steps are need.
-* Migration guide from ontimize web 8 to ontimize web 15
\ No newline at end of file
+* Migration guide from ontimize web 8 to ontimize web 15
+* Migration guide from ontimize web 15.x.x to ontimize web 15.6.0
\ No newline at end of file
diff --git a/docs/guide/10-structure.md b/docs/guide/10-structure.md
index ccd83964b..018fbfdc5 100644
--- a/docs/guide/10-structure.md
+++ b/docs/guide/10-structure.md
@@ -57,7 +57,7 @@ ontimize-web-ngx-quickstart
| | | ├── movement-types-renderer/ # Custom component (cell renderer) definition
| | | |── style-manager/ # Class for managing stylesheets
| | | |── app.menu.config.ts # Application menu definition
-| | | |── app.services.config.ts # Ontimize JEE services path configuration file
+| | | |── app.services.config.ts # Ontimize JEE or JSON:API services path configuration file
| | | |── constant.ts # File used to store constant variables on the app like the primary color code
| | | └── shared.modules.ts # Shared module definition
| | |
diff --git a/docs/guide/11-app-config.md b/docs/guide/11-app-config.md
index 330b88c0b..378c010e9 100644
--- a/docs/guide/11-app-config.md
+++ b/docs/guide/11-app-config.md
@@ -29,7 +29,7 @@ export const CONFIG: Config = {
uuid: 'com.ontimize.web.quickstart',
title: 'Ontimize Web QuickStart',
locale: 'es', /* Optional */
- serviceType: 'Ontimize' | 'OntimizeEE',/* Optional */
+ serviceType: 'Ontimize' | 'OntimizeEE' | 'JSONAPI',/* Optional, by default is OntimizeEE */
servicesConfiguration: SERVICE_CONFIG,
appMenuConfiguration: MENU_CONFIG,
applicationLocales: ['es', 'en'],
@@ -55,7 +55,8 @@ export const CONFIG: Config = {
},
exportConfiguration: {
path:'/export'
- }
+ },
+ nameConvention: 'upper' | 'lower' | 'database' /* Optional */
};
```
{: .no-scroll}
@@ -66,11 +67,12 @@ The noteworthy parameters here are:
- **uuid:** The application identifier, this is the unique package identifier of the application. It is used when storing or managing temporal data related with the application. By default is set as `ontimize-web-uuid`.
- **title:** The title of the application.
- **locale:** The language of the application specified by the country code (e.g. 'es' for Spanish, 'en' for English, etc.).
-- **serviceType:** The service type used in the app by framework components that request data from server. You can specify Ontimize REST standard, Ontimize REST JEE or a custom implementation.
- - **Not configured (by default):** if you do not configure or specify this parameter, the framework configures Ontimize REST standard services.
- - **'Ontimize'(default):** string that configures Ontimize REST services.
- - **'OntimizeEE':** string that configures Ontimize REST JEE services and is the default value.
- - **Custom class:** a service class reference that extends `OntimizeService` or `OntimizeEEService` or implements the `IDataService` interface. More information [here]({{ base_path }}/guide/service/#extending-ontimize-web-services){:target="_blank"}.
+- **serviceType:** The service type used in the app by framework components that request data from server. You can specify Ontimize REST standard, Ontimize REST JEE, JSON:API standard or a custom implementation.
+ - **Not configured (by default):** if you do not configure or specify this parameter, the framework configures OntimizeEE REST standard services.
+ - **'Ontimize'** string that configures Ontimize REST services.
+ - **'OntimizeEE'(default)::** string that configures Ontimize REST JEE services and is the default value.
+ - **'JSONAPI':** string that configures JSON:API REST services
+ - **Custom class:** a service class reference that extends `OntimizeService`, `OntimizeEEService`, `JSONAPI` or implements the `IDataService` interface. More information [here]({{ base_path }}/guide/service/#extending-ontimize-web-services){:target="_blank"}.
- **servicesConfiguration:** Object that contains the services configuration parameters. Learn more [here](#services-configuration).
- **appMenuConfiguration:** Object defining application menu structure. Learn more [here](#menu-configuration).
- **applicationLocales:** Set of available locales for the application.
@@ -94,6 +96,11 @@ The noteworthy parameters here are:
- **permissionsConfiguration:** permissions service configuration object.
- **exportConfiguration**: export configuration object required only with `Ontimize Boot version 3.9.0 or above`
- **path**: the export path used in the remote package query compatible.
+- **nameConvention**: Indicates the naming format to which database column names will be transformed when exposed through REST API requests.
+ Column names will be converted to `upper`,`lower` or `database`
+ - `upper`: All letters in column names will be converted to uppercase (e.g., `USER_ID`).
+ - `lower`: All letters in column names will be converted to lowercase (e.g., `user_id`).
+ - `database`: Column names will be used as defined in the component configuration, without any transformation (e.g., `UserId` or `USER_ID`, depending on how they are stored).
# Package.json configuration
@@ -311,12 +318,15 @@ You have to replace the references of "ontimize-web-ngx-jee-seed" by the name of
# Services configuration
-If you indicate in the application configuration that the application should use **OntimizeEE** services (check `serviceType` attribute in the [previous section](#application-configuration-file) of this page), you have to configure the service paths. For doing this **OntimizeWeb** uses the `servicesConfiguration` property from the app configuration file that must point to an object defined as in the example below.
+Ontimize Web supports **OntimizeEE** and **JSON:API**, to configure this standards you need to specify it in the `servicesConfiguration` (check `serviceType` attribute in the [previous section](#application-configuration-file).
+ of this page).
+
+ If you indicate in the application configuration that the application should use **OntimizeEE** or **JSON:API** services, you have to configure the service paths. For doing this **OntimizeWeb** uses the `servicesConfiguration` property from the app configuration file which should reference an object structured as shown in the example below.
-In this object, the keys represents the different services names used in the application. Every service needs a `path` property where you must set the path of the service, excluding the URL configured in the `apiEndpoint` attribute of the application configuration.
+In this object, each key represents a different service used in the application. Each service must include a `path` property, where you define the service's path—excluding the base URL specified in the apiEndpoint attribute of the application configuration.
```javascript
-export const SERVICE_CONFIG: Object = {
+export const SERVICE_CONFIG = {
'users': {
'path': '/users'
},
@@ -338,7 +348,7 @@ export const SERVICE_CONFIG: Object = {
};
```
-For clarification, if your `apiEndpoint` is the one in the [application configuration](#application-configuration-file) example, **OntimizeWeb** will concat the `apiEndpoint` and the `path` of the service to build the URL for sending requests. For example : https://try.ontimize.com/QSAllComponents-jee/services/rest/customers.
+For clarification, if your `apiEndpoint` is the one in the [application configuration](#application-configuration-file) example, **OntimizeWeb** and **JSON:API** will concat the `apiEndpoint` and the `path` of the service to build the URL for sending requests. For example : https://try.ontimize.com/QSAllComponents-jee/services/rest/customers.
# Internationalization (i18) configuration
diff --git a/docs/guide/15-service.md b/docs/guide/15-service.md
index 95a63a92f..f46250c1d 100644
--- a/docs/guide/15-service.md
+++ b/docs/guide/15-service.md
@@ -1,279 +1,333 @@
---
layout: default
-title: "Services"
+title: Services
+has_children: true
permalink: /guide/service/
parent: Guide
-nav_order: 6
+nav_order: 3
+has_toc: false
---
{% include base_path %}
{% include toc %}
-This section describes the **OntimizeWeb** services an how to extend them to add or modify its functionality.
+OntimizeWeb provides a powerful and flexible way to interact with backend services, supporting both **standard APIs using the JSON:API** and **Ontimize-based backends** . This allows developers to integrate data sources seamlessly using a standardized interface while maintaining the reactive and component-driven architecture of Angular.
-## Ontimize services
+This guide describes how services work in OntimizeWeb, how to extend them, and how to integrate third-party APIs using the JSON:API specification. Whether you're working with an Ontimize server or a modern RESTful API, this documentation will help you implement consistent data access across your application.
-OntimizeWeb services are used for fetching and saving data from servers based on [Ontimize](https://github.com/ontimize){:target="_blank"}. There is two types of Ontimize services depending on the server technology used: `OntimizeService` and `OntimizeEEService`. You must indicate which type of service the application will use by configuring the `serviceType` attribute in the [application configuration]({{ base_path }}/guide/appconfig/#application-configuration-file){:target="_blank"}.
-You can also use your own service and adapt its response to OntimizeWeb's standard response. This will be explained later in this section.
+{% include nav_cards.html folder="services" %}
-### Ontimize services methods
-Both services `OntimizeService` and `OntimizeEEService` have the same methods for configuring and sending request to the server. This methods are the following:
+## Extending Ontimize Web services
-```javascript
-/* Configuration methods */
-getDefaultServiceConfiguration(serviceName?: string): Object;
-configureService(config: any): void;
-
-/* CRUD methods */
-query(kv?: Object, av?: Array, entity?: string, sqltypes?: Object): Observable;
-advancedQuery(kv?: Object, av?: Array, entity?: string, sqltypes?: object,
- offset?: number, pagesize?: number, orderby?: Array