|
|
@@ -42,11 +42,14 @@ router.defineRoute({
|
|
|
method: HttpMethod.GET,
|
|
|
path: '/parseQuery',
|
|
|
meta: {
|
|
|
- dataMap: { // определение карты данных
|
|
|
- filter: { // свойство "filter" будет добавлено в "state"
|
|
|
- source: HttpData.REQUEST_QUERY, // откуда брать данные
|
|
|
+ // в метаданных маршрута определяется набор свойств, которые
|
|
|
+ // будут переданы в состояние текущего запроса "ctx.state",
|
|
|
+ // свойства будут содержать данные согласно указанной схеме
|
|
|
+ dataMap: { // определение схемы данных
|
|
|
+ filter: { // свойство "filter" будет добавлено в "ctx.state"
|
|
|
+ source: HttpData.REQUEST_QUERY, // источник данных
|
|
|
property: 'filter', // извлечь свойство (опционально)
|
|
|
- schema: { // схема данных для парсинга и проверки
|
|
|
+ schema: { // схема для парсинга и валидации
|
|
|
type: DataType.OBJECT, // разобрать значение как объект
|
|
|
required: true, // в противном случае выбросить ошибку
|
|
|
},
|
|
|
@@ -84,7 +87,7 @@ export const HttpData = {
|
|
|
|
|
|
- `source: HttpData` источник данных;
|
|
|
- `property?: string` извлечение указанного свойства;
|
|
|
-- `schema?: DataSchema` схема данных для парсинга и проверки;
|
|
|
+- `schema?: DataSchema` схема для парсинга и валидации;
|
|
|
- `projection?: DataProjection` схема проекции данных;
|
|
|
|
|
|
Пример проекции ответа.
|
|
|
@@ -96,9 +99,9 @@ router.defineRoute({
|
|
|
meta: {
|
|
|
dataMap: { // определение карты данных
|
|
|
response: {
|
|
|
- // свойство "response" не будет добавлено в "state",
|
|
|
- // так как в данном случае источником выступает
|
|
|
- // ответ маршрута
|
|
|
+ // свойство "response" не будет добавлено в "ctx.state",
|
|
|
+ // так как в данном случае источником выступает ответ
|
|
|
+ // сервера, а не входящие данные
|
|
|
source: HttpData.RESPONSE_BODY, // источник данных
|
|
|
projection: {foo: true, bar: false}, // схема проекции
|
|
|
// подробнее о схеме проекции (параметр "projection")
|