Преобразование JSON из API в поток активности

Я делаю проект для удовольствия, и одним из требований является получение данных JSON из API по моему выбору и преобразование их в поток операций с помощью angularjs.

Я погуглил и прочитал, что такое поток действий, и я думаю, что у меня есть общее представление об этом. По сути, это преобразование действия в определенный формат JSON с использованием ключевых слов "актер", "глагол", "объект" и "цель".

Когда я смотрю на примеры, я понимаю, почему эта конкретная строка JSON считается потоком активности.

Пример:

  {
"published": "2011-02-10T15:04:55Z",
"actor": {
  "url": "http://example.org/martin",
  "objectType" : "person",
  "id": "tag:example.org,2011:martin",
  "image": {
    "url": "http://example.org/martin/image",
    "width": 250,
    "height": 250
  },
  "displayName": "Martin Smith"
},
"verb": "post",
"object" : {
  "url": "http://example.org/blog/2011/02/entry",
  "id": "tag:example.org,2011:abc123/xyz"
},
"target" : {
  "url": "http://example.org/blog/",
  "objectType": "blog",
  "id": "tag:example.org,2011:abc123",
  "displayName": "Martin's Blog"
}

}

Но я запутался в том, как преобразовать мои данные JSON в поток действий.

В моем JSON нет "актера" и "глагола". Если кто-то может объяснить или предоставить решение, которое будет высоко ценится. Спасибо!

API погоды

{
  "coord": {
    "lon": -0.13,
    "lat": 51.51
  },
  "weather": [
    {
      "id": 300,
      "main": "Drizzle",
      "description": "light intensity drizzle",
      "icon": "09d"
    }
  ],
  "base": "stations",
  "main": {
    "temp": 280.32,
    "pressure": 1012,
    "humidity": 81,
    "temp_min": 279.15,
    "temp_max": 281.15
  },
  "visibility": 10000,
  "wind": {
    "speed": 4.1,
    "deg": 80
  },
  "clouds": {
    "all": 90
  },
  "dt": 1485789600,
  "sys": {
    "type": 1,
    "id": 5091,
    "message": 0.0103,
    "country": "GB",
    "sunrise": 1485762037,
    "sunset": 1485794875
  },
  "id": 2643743,
  "name": "London",
  "cod": 200
}

2 ответа

ActivityStream - это просто спецификация для действий. Погода это просто модель. Модель может быть субъектом / субъектом или объектом, на который действует субъект. В этом случае погода может быть только объектом.

Пример деятельности, связанной с погодой:

Мартин проверяет погоду в Лондоне в 15:04 UTC 10 февраля 2015 года.

Соответствующей деятельностью JSON является:

{
  "published": "2015-02-10T15:04:55Z",
  "actor": {
    "url": "http://example.org/martin",
    "objectType" : "person",
    "id": "tag:example.org,2011:martin",
    "image": {
      "url": "http://example.org/martin/image",
      "width": 250,
      "height": 250
    },
    "displayName": "Martin Smith"
  },
  "verb": "search",
  "object" : {
    "url": "http://api.openweathermap.org/data/2.5/weather?q=London",
    "name": "London's weather",
    "published": "2015-02-10T15:04:55Z"
  }
}

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

Концепция потока деятельности довольно проста. Вот хороший пример: "Венди добавляет Лондон в свой список мест для посещения"

В этом случае актер - "Венди", объект - "Лондон", глагол - "Добавить", а цель - "Места для посещения".

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

Пример 2:

Приложение Uber не работает с кодом ошибки 2 и было назначено Джону

  • Актер: приложение: Uber
  • Глагол: перерыв
  • Объект: Ошибка:2
  • Цель: пользователь: Джон

Пример 3:

RoadToVR опубликовал статью о "Эхо Арене"

  • Актер: RoadToVR
  • Глагол: опубликовано
  • Объект: Артикул:123

Расширенные поля

Спецификация также описывает поле TO. Вы можете использовать поле TO для поддержки @mentions, хэштегов и уведомлений.

Версия 2

Также доступна новая версия спецификации потока активности: https://www.w3.org/TR/activitystreams-core/ Пока что я не вижу никаких свидетельств того, что приложения принимают эту новую спецификацию.

Учебный поток

Этот учебник является хорошей отправной точкой, если вы хотите создать фид в стиле Twitter: https://getstream.io/get_started/

Другие вопросы по тегам