Как сохранить основные данные приложения на стороне сервера?

Я пытаюсь создать API, который можно использовать для обновления некоторых основных данных в моем приложении. Он содержит различные раскрывающиеся списки для города, страны и т. д. Всякий раз, когда я добавляю новые данные в эти раскрывающиеся списки, мне нужно, чтобы приложения обращались к этому API один раз в день и получали последние данные. Кроме того, если API запрашивает более старые данные (из старых приложений), он должен иметь возможность возвращать такие данные на основе некоторого параметра запроса date.

Как лучше всего создать такой API?

Кроме того, API должен быть RESTful и будет доступен для сред Android/iOS.


person Batman    schedule 07.04.2015    source источник
comment
У вас или вашей компании уже есть серверные базы данных, веб-серверы и языки, которые вы предпочитаете?   -  person Steve Wilhelm    schedule 20.04.2015
comment
Возвращаются ли результаты для каждого изменения раскрывающегося списка в зависимости от текущего пользователя. То есть определяется ли содержимое каждого раскрывающегося списка пользователем, его связью с конкретным клиентом, географией и т. д.?   -  person Steve Wilhelm    schedule 20.04.2015


Ответы (3)


API должен иметь возможность возвращать это на основе некоторого параметра запроса даты.

Вы можете использовать два столбца created_at и updated_at в схеме таблиц. Итак, как это может быть полезно для вашей ситуации:

  • Всякий раз, когда кто-то нажимает API без параметра date, вы возвращаете все данные, созданные до current time.
  • Всякий раз, когда кто-то нажимает API с параметром date, вы можете возвращать данные, созданные до параметра value of date.

Очевидно, вам нужно написать полную логику для этого на стороне сервера.

person Manwal    schedule 20.04.2015

Пожалуйста, ознакомьтесь с одним из продуктов Mobile Backend как услуга (mBaaS) для ваших долгосрочных потребностей.

Вот некоторые игроки:

  • BaasBox: серверная часть с открытым исходным кодом
  • Backendless: позволяет разработчикам иметь мгновенный бэкенд без написания кода на стороне сервера.
  • Apigee App Services: предоставляет много свободного места для хранения, push-уведомления, аналитику и т. д.
  • Appcelerator: BaaS, ориентированный на корпоративную аудиторию.

В краткосрочной перспективе вы можете попробовать https://www.webscript.io/ для встраивания некоторый быстрый код javascript, чтобы вернуть вам ответ JSON.

person Santanu Dey    schedule 15.04.2015
comment
Я работаю в компании, где я должен делать это самостоятельно и не могу отдать на аутсорсинг. - person Batman; 15.04.2015
comment
@Batman, глядя на ваш комментарий, я предлагаю использовать простой бэкэнд node.js для создания ваших REST API. Мне лично нравится использовать экспресс для веб-приложений узла. В Интернете есть несколько руководств по созданию таких простых REST API с использованием node. Например, посмотрите на эту ссылку scotch.io/ учебники/ - person Santanu Dey; 18.04.2015

Я бы добавил к предложению @Santanu использовать BaaS. Я бы рекомендовал использовать BaaS на этапе разработки вашего проекта.

Когда приложения для iPhone и Android будут разработаны и протестированы, замените серверные компоненты на основе Baas собственным сервером RESTful.

Этот подход имеет несколько преимуществ. Это позволяет вам разделить усилия на две отдельные части: изменение клиента в вашем продукте и создание вашего серверного компонента.

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

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

Благодаря приложениям, использующим запросы данных для заполнения раскрывающихся списков из RESTful API на основе BaaS, а также стабильным рабочим моделям данных и наборам данных, размещенным на серверах BaaS, можно будет намного быстрее приступить к созданию собственной службы RESTful.

Когда вы столкнетесь с проблемами, вы будете уверены, что они находятся в коде на стороне сервера. Вы можете запускать A/B-тесты с одними и теми же приложениями на двух версиях сервера и убедиться, что клиент работает одинаково.

Вы можете продолжать использовать сервер BaaS для быстрого прототипирования и разработки расширений API.

person Steve Wilhelm    schedule 20.04.2015