Мой последний проект для Flatiron включал SPA с бэкэндом Rails API и интерфейсом Javascript.

Использование рельсов в качестве API означало, что данные в бэкэнде должны были легко взаимодействовать с моим интерфейсом. Данные в серверной части должны быть как можно лучше структурированы, чтобы обеспечить максимально плавную работу этого интерфейса.

Хотя вполне возможно указать, какие данные должны отображаться в JSON внутри контроллера (и на самом деле Rails делает это довольно просто с помощью render :json), данные, которые выводятся с помощью этого метода, довольно беспорядочны. Опять же, вполне возможно очистить эти данные в контроллере, но есть также специальные драгоценные камни, которые сделают это за вас.

Для этого проекта я реализовал Fast JSON API, жемчужину, разработанную Netflix. Gem Fast JSON API предоставляет генератор сериализаторов в Rails, который поддерживает отношения has_many, own_to и has_one, все из которых я использовал в своем проекте.

С помощью этого драгоценного камня я смог использовать сериализацию своих данных, чтобы обеспечить единообразный и чистый ответ json на мой интерфейс.

Я смог указать, какие данные я хотел разрешить, а также смог легко включить отношения между моими моделями. Это было крайне важно, потому что у меня было много переплетенных отношений.

Мое приложение — это приложение для создания мира, предназначенное для писателей или любителей фэнтези, чтобы описать все аспекты мира.

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

Чистота и предсказуемая организация этих данных позволили мне создать четкие, абстрактные функции, которые будут работать со всем спектром ответов из моей базы данных.