Управление версиями API FedEx
В FedEx используется семантическое управление версиями API. Номера версий API имеют следующий формат: «основная.дополнительная» (например, API отправлений 1.1). Новая основная версия подразумевает изменения без обратной совместимости, а новая дополнительная версия указывает на наличие изменений с обратной совместимостью.
В FedEx используется простое управление версиями URI. Это значит, что в адресе URI указывается только основная версия. Следует иметь в виду, что номер дополнительной версии в адресе URI не указывается. Для указания на конкретные версии API в этой схеме используется маршрутизация адресов URI.
Например: /ship/v1/shipments
Основные принципы управления версиями
Мы планируем реже выпускать основные версии API FedEx. При этом поддержка основной версии прекращается через два года после выпуска новой. То есть, после выпуска основной версии N версия N-1 будет поддерживаться еще в течение двух лет с момента выпуска версии N.
Например: в 2020 году выпущена основная версия 1.0. Если в 2021 году будет выпущена версия 2.0, поддержка версии 1.0 будет прекращена в 2023 году.
Дополнительные версии будут содержать новые функции и обновления.
Например: после основной версии 1.0, будут выпускаться дополнительные версии 1.1, 1.2 и т. д. для внедрения новых функций и обновлений.
В любой момент времени все конечные точки определенного API будут относиться к одной и той же основной версии. Последняя версия документации будет доступна только на портале FedEx Developer Portal. При этом краткое описание каждого API будет содержать журнал изменений с подробными сведениями об изменениях в основной и дополнительных версиях.
В каких случаях происходит выпуск основных версий API?
Мы стремимся свести к минимуму количество основных версий API. Однако бывают случаи, когда выпуск новой основной версии просто необходим. Ниже приведены основные причины необходимости выпуска новой основной версии.
- При удалении существующего цифрового значения, а также изменении формата или значения в запросе или отклике
Пример. В версии N удалено перечисляемое значение “GEOGRAPHIC_COORDINATES” для элемента locationSearchCriterion; синтаксис даты ГГ-ММ-ДД заменен на ДД-ММ-ГГГГ; в отклике тип местоположения FEDEX_ONSITE заменен на ONSITE
- При удалении существующего элемента из запроса или отклика
Пример. В версии N из запроса удален (или переименован) элемент pickupType
- При удалении существующего метода
Пример. В версии N больше не поддерживается метод создания и отмены тегов FedEx Express.
- При переводе существующего элемента запроса из разряда необязательных или условных в обязательные
Пример. В версии N номер бронирования стал обязательным элементом для отправлений FedEx Express® Freight.
- При изменениях в структуре API
Пример. Изменена структура запроса и отклика.
- При внесении изменений в коды и сообщения об ошибках
Пример. Код ошибки INCORRECT.WEIGHT заменен на WEIGHT.LIMIT.EXCEEDED.
В каких случаях происходит выпуск дополнительных версий API?
- При добавлении нового цифрового значения
Пример. В версии N для услуги serviceType добавлен новый вариант транспортировки.
- При добавлении нового элемента
Пример. Добавлен новый необязательный элемент с номером телефона брокера для международных отправлений.
- При добавлении нового метода
Пример. В версии N добавлен метод изменения международных коммерческих документов после загрузки в систему.
- При переводе существующего элемента из категории обязательных в необязательные
Пример. Идентификатор документа Document ID переведен в разряд необязательных элементов, поскольку система FedEx теперь может получать идентификатор документации из данных о пользователе.
Часто задаваемые вопросы
Необходимо будет в течение двух лет обновить адрес URI до новой версии, чтобы у FedEx была возможность прекратить использование старой версии.
В дополнительных версиях содержатся новые функции и изменения, имеющие обратную совместимость, поэтому они не должны влиять на вашу интеграцию. Обновление до новых дополнительных версий не является обязательным, но рекомендуется, поскольку позволяет использовать новые функции, созданные с учетом потребностей пользователей.
Любые изменения в службах FedEx Web Services требуют выпуска нового файла в формате WSDL или основной версии, что усложняет процесс обновления для пользователей. Что касается API FedEx, внедрение новых функций возможно в рамках дополнительных версий, поэтому обновление не представляет никакой сложности. Количество дополнительных версий API будет, а основных версий — меньше.