e22m4u 1 неделя назад
Родитель
Сommit
a1eecc956f
1 измененных файлов с 62 добавлено и 24 удалено
  1. 62 24
      README.md

+ 62 - 24
README.md

@@ -33,16 +33,74 @@ const {TrieRouterDataMapper} = require('@e22m4u/js-trie-router-data-mapper');
 
 
 ## Описание
 ## Описание
 
 
-Модуль позволяет определить схему данных маршрута. На основе схемы выполняется
-автоматический парсинг, валидация и проекция данных HTTP-запроса и ответа
-сервера. Сформированные данные помещаются в контекст запроса или определяют
-структуру возвращаемого ответа.
+Модуль позволяет определить разметку данных маршрута. На основе разметки
+выполняется автоматический парсинг, валидация и проекция данных HTTP-запроса
+и ответа сервера. Сформированные данные помещаются в контекст запроса
+или определяют структуру возвращаемого ответа.
 
 
 Модуль использует синтаксис указанных ниже схем (не требуют установки).
 Модуль использует синтаксис указанных ниже схем (не требуют установки).
 
 
 - Схема данных [@e22m4u/js-data-schema](https://www.npmjs.com/package/@e22m4u/js-data-schema)
 - Схема данных [@e22m4u/js-data-schema](https://www.npmjs.com/package/@e22m4u/js-data-schema)
 - Схема проекции [@e22m4u/js-data-projector](https://www.npmjs.com/package/@e22m4u/js-data-projector)
 - Схема проекции [@e22m4u/js-data-projector](https://www.npmjs.com/package/@e22m4u/js-data-projector)
 
 
+Разметка определяется в метаданных маршрута.
+
+```js
+import {HttpData, DataType} from '@e22m4u/js-trie-router-data-mapper';
+
+router.defineRoute({
+  method: HttpMethod.POST,
+  path: '/createUser',
+  meta: {
+    // разметка данных
+    dataMapper: {
+      userData: { // свойство "userData" будет добавлено в "ctx.state"
+        source: HttpData.REQUEST_BODY, // источник данных
+        schema: DataType.OBJECT,       // тип или схема данных
+        // property: ...   (извлекаемое свойство, опционально)
+        // projection: ... (схема проекции)
+      },
+    },
+  },
+  handler: ({state: {userData}}) => {
+    // ...
+  },
+});
+```
+
+Параметры разметки (метаданные маршрута).
+
+- `source: HttpData` источник данных;
+- `property?: string` извлечение указанного свойства;
+- `schema?: DataType | DataSchema` тип или схема данных;
+- `projection?: DataProjection` схема проекции;
+
+Константы источников данных (параметр `source`).
+
+```js
+export const HttpData = {
+  REQUEST_PARAMS: 'requestParams',
+  REQUEST_QUERY: 'requestQuery',
+  REQUEST_HEADERS: 'requestHeaders',
+  REQUEST_COOKIES: 'requestCookies',
+  REQUEST_BODY: 'requestBody',
+  RESPONSE_BODY: 'responseBody',
+};
+```
+
+Константы типов данных (подробнее [@e22m4u/js-data-schema](https://www.npmjs.com/package/@e22m4u/js-data-schema)).
+
+```js
+export const DataType = {
+  ANY: "any",
+  STRING: "string",
+  NUMBER: "number",
+  BOOLEAN: "boolean",
+  ARRAY: "array",
+  OBJECT: "object",
+}
+```
+
 ## Использование
 ## Использование
 
 
 Подключение модуля к маршрутизатору.
 Подключение модуля к маршрутизатору.
@@ -93,26 +151,6 @@ router.defineRoute({
 });
 });
 ```
 ```
 
 
-Список источников данных.
-
-```js
-export const HttpData = {
-  REQUEST_PARAMS: 'requestParams',
-  REQUEST_QUERY: 'requestQuery',
-  REQUEST_HEADERS: 'requestHeaders',
-  REQUEST_COOKIES: 'requestCookies',
-  REQUEST_BODY: 'requestBody',
-  RESPONSE_BODY: 'responseBody',
-};
-```
-
-Описание параметров `dataMapper` (метаданные маршрута).
-
-- `source: HttpData` источник данных;
-- `property?: string` извлечение указанного свойства;
-- `schema?: DataSchema` схема для парсинга и валидации;
-- `projection?: DataProjection` схема проекции данных;
-
 Пример проекции ответа.
 Пример проекции ответа.
 
 
 ```js
 ```js