From c19786d0e0d7ef4dbffb59bbc27a43feb243810c Mon Sep 17 00:00:00 2001 From: elena Date: Tue, 6 Mar 2018 20:21:23 +0300 Subject: [PATCH] added versioning to all contents section --- Web-documentation/all_contents.html.twig | 25 ++++++++++++++++-- .../blocks/versioning-info.html.twig | 26 +++++++++++++++++++ Web-documentation/versioning.html.twig | 25 +----------------- 3 files changed, 50 insertions(+), 26 deletions(-) create mode 100644 Web-documentation/blocks/versioning-info.html.twig diff --git a/Web-documentation/all_contents.html.twig b/Web-documentation/all_contents.html.twig index 5f40a04..c2482dc 100644 --- a/Web-documentation/all_contents.html.twig +++ b/Web-documentation/all_contents.html.twig @@ -45,11 +45,25 @@
  • Перечисления
  • бщий вид ответа сервера
  • - {%- include 'blocks/table-of-contents-body.html.twig' with { + + + {% if versioningEnabled %} +
  • +

    + Версионирование API +

    +
      +
    1. Описание
    2. +
    3. Пример
    4. +
    +
  • + {% endif %} + + {%- include 'blocks/table-of-contents-body.html.twig' with { methods: tableOfContents.methods, classes: tableOfContents.classes, enums: tableOfContents.enums - } %} + } %} @@ -59,6 +73,13 @@ {%- include 'blocks/main-concepts.html.twig' with { responseClass: responseClass } %} + {% if versioningEnabled %} +

    + Версионирование API +

    + {%- include 'blocks/versioning-info.html.twig' with { errorType: errorType, errorsPagePath: errorsPagePath } %} + {% endif %} + {% if methods is not null %}

    Методы diff --git a/Web-documentation/blocks/versioning-info.html.twig b/Web-documentation/blocks/versioning-info.html.twig new file mode 100644 index 0000000..32b27e7 --- /dev/null +++ b/Web-documentation/blocks/versioning-info.html.twig @@ -0,0 +1,26 @@ +{# FIXME. Discuss: https://github.com/TouchInstinct/api-generator/issues/41 #} +{%- set outOfDateError = first(errorType.values) -%} + +
    +

    Описание

    +

    Необходимо иметь возможность поддержки нескольких версий API (для одновременной работы нескольких версий приложения). Также необходимо предусмотреть принудительное обновление какой-либо из версий.

    +

    Версии API будут размещаться на url-адресах вида <base_url>/v<version_number>/, где <version_number> - версия API.

    +

    При вызове любого метода в случае, если вызываемая версия API требует обновления приложения, сервер должен вернуть ошибку:
    + "{{ outOfDateError.description }} Код {{ outOfDateError.value }}."

    +

    При этом приложение должно показать пользователю диалог с предложением установить новую версию из маркета, а остальные функции должны стать недоступными. +

    + +

    Пример

    +

    Первая версия API будет располагаться по адресу: <base_url>/v1/.
    + В тот момент, когда эта версия API перестанет поддерживаться, на все запросы этой версии API сервер должен возвращать следующий ответ:

    +
    + +
    + { + "result": null + "error_code": {{ outOfDateError.value }}, + "error_message": "{{ outOfDateError.description }}" + } +
    +
    +
    \ No newline at end of file diff --git a/Web-documentation/versioning.html.twig b/Web-documentation/versioning.html.twig index 11d93be..f9ccbff 100644 --- a/Web-documentation/versioning.html.twig +++ b/Web-documentation/versioning.html.twig @@ -1,8 +1,5 @@ {%- include 'blocks/head.html.twig' with { title: pageTitle, cssFolderPath: cssFolderPath } %} -{# FIXME. Discuss: https://github.com/TouchInstinct/api-generator/issues/41 #} -{%- set outOfDateError = first(errorType.values) -%} -
    @@ -21,27 +18,7 @@ } %}
    -
    -

    Описание

    -

    Необходимо иметь возможность поддержки нескольких версий API (для одновременной работы нескольких версий приложения). Также необходимо предусмотреть принудительное обновление какой-либо из версий.

    -

    Версии API будут размещаться на url-адресах вида <base_url>/v<version_number>/, где <version_number> - версия API.

    -

    При вызове любого метода в случае, если вызываемая версия API требует обновления приложения, сервер должен вернуть ошибку:
    - "{{ outOfDateError.description }} Код {{ outOfDateError.value }}."

    -

    При этом приложение должно показать пользователю диалог с предложением установить новую версию из маркета, а остальные функции должны стать недоступными. -

    - -

    Пример

    -

    Первая версия API будет располагаться по адресу: <base_url>/v1/.
    - В тот момент, когда эта версия API перестанет поддерживаться, на все запросы этой версии API сервер должен возвращать следующий ответ:

    -
    - -
    { - "result": null - "error_code": {{ outOfDateError.value }}, - "error_message": "{{ outOfDateError.description }}" -}
    -
    -
    + {%- include 'blocks/versioning-info.html.twig' with { errorType: errorType, errorsPagePath: errorsPagePath } %}