В настоящее время я работаю над веб-приложением на основе Java. Недавно мы создали некоторые конечные точки REST с использованием Spring. Причина этого заключалась в том, что мы разработали гибридное мобильное приложение, которое интегрируется с нашим основным приложением через эти конечные точки.REST API versioning
Проблема в том, что в будущем мы не совсем уверены, как обрабатывать обновления. Если мы обновим наш API, например. мы меняем сигнатуры методов методов конечных точек или меняем атрибуты на DTO, которые мы возвращаем как JSON, тогда у нас возникнет проблема, если наши мобильные пользователи будут запускать устаревшую версию мобильного приложения.
Что мы хотим реализовать, это то, что заставит наших пользователей обновлять приложение, если оно устарело. Я видел много мобильных приложений, которые это делают. Поэтому мы подумали о том, чтобы иметь версию API для нашего REST API, а затем проверить мобильное приложение, если используемая версия такая же, как версия, выполняемая нашим сервером, а если нет, то заставить пользователя сделать обновление.
Проблемы у нас есть следующие:
У нас есть только одна версия нашего сервера работает в любое время. Итак, как мы будем время выпускать наши релизы? Что произойдет в том случае, если мы выпустим новую версию нашего API и нашего мобильного приложения, но в магазине приложений пока нет доступной последней версии. Затем пользователь будет вынужден выполнять обновление, но обновленное приложение еще не доступно для них.
Как мы поддерживаем номер версии API? В мобильном приложении мы можем просто настроить это. Но на сервере неплохо поддерживать номер версии. Причина, по которой я говорю это, - это то, что если мы вносим изменения в сигнатуру метода или DTO и т. Д., И забываем обновить этот номер версии вручную до выпуска? Разумеется, существует более автоматический способ сделать это, когда создается уникальный «ключ API» на основе текущего определения API? Тогда мы могли бы использовать это вместо номера версии API.
Возможный дубликат [Рекомендации по управлению версиями API?] (Http://stackoverflow.com/questions/389169/best-practices-for-api-versioning) –
просто предложение, нажимайте уведомление о мобильных приложениях. on event, запрос на версию API, если он изменен, уведомить пользователя о необходимости обновления приложения. или даже лучше, если api не изменит поведение приложения, просто обновите API автоматически. – nafas