Создание нового API только бэкэнд может быть проще, но вам придется скопировать всю вашу логику приложения в модели и поддерживать обе стороны в актуальном состоянии, это будет боль. Вы можете сделать это в том же приложении rails, если вы пропустите пространство имен нового API, чтобы все вызовы находились под /api_v1
или что-то в этом роде. Здесь - статья, в которой показано, как вы можете иметь разные версии вашего API.
JWT для аутентификации - отличный способ сделать это, а Devise может поддерживать их, добавив драгоценный камень, подобный devise-jwt , после добавления маршрута и обработки создания и обновления токенов
Для самого API вы можете рассмотреть возможность использования JSON: API с жемчугом jsonapi-rails или ] GraphQL с графом graphql . Таким образом, когда кто-то хочет использовать ваш API, они могут использовать адаптер для своей инфраструктуры, который может говорить с таким API, и не нужно беспокоиться о структуре того, что он возвращает. Существуют адаптеры для обоих API, которые работают с Andrioid, IOS, Ember, React и всеми другими основными интерфейсами.