Рубрики
Без рубрики

Модернизация вдохновленных услуг отдыха в сервисном ядре

Обслуживание службы @Discleton () @Baseurl (“/ api / v2020 / app /”) Экспорт задачи класса по умолчанию … с меткой MVVM, Teamscript, Showdev, JavaScript.

@DISingleton()
@BaseUrl("/api/v2020/app/")
export default class TaskService extends BaseService {

    @Get("user")
    public getUser(): Promise;

    @Get("tasks")
    public getTasks(
        @Query("search") search: string,
        // default value should be specified in
        // decorator and not in argument declaration
        @Query("status", "open") status?: string
    ): Promise

    @Get("tasks/{id}/attachments")
    public getAttachments(
        @Path("id") id: number
    ): Promise;

    @Put("tasks")
    public createTask(@Body task: ITask): Promise;

    @Post("tasks/{id}/attachments")
    public uploadAttachment(
        @Path("id") id: number,
        @Body att: IAttachment,
        cancelToken: CancelToken): Promise;
}

Как можно легко, это очень легко настроить службу для отдыха.

Кэширование

    @Get("tasks", { jsCacheSeconds: 900 })
    public getTasks(
        @Query("search") search: string,
        // default value should be specified in
        // decorator and not in argument declaration
        @Query("status", "open") status?: string
    ): Promise

Кэширует ответ в JavaScript на 900 секунд.

Кэширование на основе результата

    @Get("tasks", { jsCacheSeconds: (r) => r.length ? 900 : 0 })
    public getTasks(
        @Query("search") search: string,
        // default value should be specified in
        // decorator and not in argument declaration
        @Query("status", "open") status?: string
    ): Promise

Реакция кэша только в том случае, если у возвращенного массива есть какие-либо элементы.

Фиксированные заголовки

    @Get("tasks", {
            headers: {
               "x-cache": "none",
               "accept": "application/json"
            }
    })
    public getTasks(
        @Query("search") search: string,
        // default value should be specified in
        // decorator and not in argument declaration
        @Query("status", "open") status?: string
    ): Promise

Заголовок по параметрам

    @Get("tasks")
    public getTasks(
        @Header("x-auth") auth: string,
        @Query("search") search: string,
        // default value should be specified in
        // decorator and not in argument declaration
        @Query("status", "open") status?: string
    ): Promise

Варианты анализа JSON

    @Get("tasks", { 
       jsonOptions: {
          namingStrategy: "underscore",
          indent: 2,
          dateConverter: {
             regex: dateFormatRegex,
             valueConverter: {
                fromSource:(v: string) => Date,
                fromTarget:(date: Date) => string
             }
          }
       }
    })
    public getTasks(
        @Header("x-auth") auth: string,
        @Query("search") search: string,
        // default value should be specified in
        // decorator and not in argument declaration
        @Query("status", "open") status?: string
    ): Promise
    @Get("tasks", { 
       returnHeaders: true
    })
    public getTasks(
        @Header("x-auth") auth: string,
        @Query("search") search: string,
        // default value should be specified in
        // decorator and not in argument declaration
        @Query("status", "open") status?: string
    ): Promise>

Единственное различие, тип результата всегда IAPIRESPONSE , который содержит заголовки и стоимость .

Сервисы издевательства заставляют тестирование подразделения и разработки дизайна очень легко.

@DISingleton({ mock: "./mocks/MockTaskService" })
@BaseUrl("/api/v2020/app/")
export default class TaskService extends BaseService {
...

Теперь вы можете сохранить Mocktaskservice внутри Макеты папка. И переопределить каждый способ возвращать данные о проектировании.

Погружать в образцы

https://www.webatoms.in/samples.html#contextId=0

Веб-атомы/ядро

MVVM Framework для JavaScript для браузера, Xamarin. Формы, напишите TSX/Tymdercript вместо XAML и C #, горячей перезагрузки в прямом эфире, опубликованном Xamarin. Формирует приложения.

Ядро веб-атомов – это база абстракции UI, а также мощный шаблон MVVM для дизайна современных веб- и мобильных приложений.

Xamarin. Формы особенности

  1. Используйте VS-код для развития Xamarin. Формы
  2. Напишите Teamscript вместо C #
  3. Напишите TSX (JSX) вместо XAML
  4. Живая Горячая перезагрузка для опубликованного приложения

Веб-функции

  1. Абстрактный компонент атома
  2. Абстрактное устройство API (услуга браузера, трансляция сообщений)
  3. Тема и стили поддерживают без CSS
  4. Один раз, в одну сторону и Двухсторонняя поддержка связывания
  5. Простая впрыск зависимости
  6. В построенной простой структуре тестирования подразделения
  7. Поддержка модуля UMD
  8. Полнофункциональный MVVM Framework с мощной проверкой

Структура папок

  1. Все представления для Интернета должны быть размещены в папке «Веб» в папке «SRC».
  2. Все виды для форм Xamarin должны быть размещены в папке «XF» внутри папки «SRC».

Пример структуры папки

src
+--images
|  +--AddButton.svg
|
+--view-Models
|  +--TaskListViewModel.ts
|  +--TaskEditorViewModel.ts
|
+--web
|  +--tasks
|     +--TaskListView.tsx
|     +--TaskEditorView.tsx
|
+--xf
   +--tasks
      +--TaskListView.tsx
      +--TaskEditorView.tsx

Пример обзора

Оригинал: “https://dev.to/web-atoms/retrofit-inspired-rest-services-in-web-atoms-core-1nap”