Документація Steamworks
Коди помилок і відповіді

Формати відповідей

Кожен метод у веб-API Steamworks може повертати відповіді в кількох форматах. Стандартно всі відповіді повертаються у форматі JSON. Однак кожен запит може містити необов’язковий параметр format, який змінює формат відповіді.

Приклад:
http://api.steampowered.com/ISteamNews/GetNewsForApp/v0002/?appid=440&count=1&format=xml

Цей параметр приймає наступні значення:
  • JSON

    • API завжди повертає об’єкт, що містить іменований об’єкт і дані результату.
    • Масиви представлені як масиви з назвою типу об’єктів у масиві.
    • Тип null представлений як null у форматі JSON.
    • 64-бітні числа повертаються як текстові значення.
    • Приклад:
      { "appnews": { "appid": 440, "newsitems": [ { "gid": "1904306376092568991", "title": "Prince of Prolander Event ", "url": "http://store.steampowered.com/news/externalpost/tf2_blog/1904306376092568991", "is_external_url": true, "author": "", "contents": "<a href=/"http://rgl.gg/default.aspx/"><img src=/"https://steamcdn-a.akamaihd.net/steam/news/29555/prince.png?t=1495219023/"></a><br><br>/n<p><b>This Sunday at 4:30pm EST</b> <a href=/"http://rgl.gg/default.aspx/" target=\"_blank\">RGL.gg</a> is hosting their Prince of Prolander event. See legendary players <a href=/"https://www.youtube.com/user/stabbyvideo/" target=\"_blank\">Stabby</a> and <a href=/"https://www.youtube.com/user/danethebrain/" target=\"_blank\">Uncle Dane</a> duke it out to answer the age old question: Who is better? Spies or Engies? Come see them settle the score once and for all in the new competitive TF2 format, Pick/Ban Prolander. Be sure to tune in to <a href=/"https://www.twitch.tv/extvesports/" target=\"_blank\">Twitch</a> this Sunday, and witness this historic event!</p><br>", "feedlabel": "TF2 Blog", "date": 1495218420, "feedname": "tf2_blog", "feed_type": 0, "appid": 440 } ], "count": 2385 } }
  • XML

    • Атрибути XML не використовуються.
    • Масиви представлені як серія піделементів в елементі типу масив.
    • Тип null представлений словом null між теґами елемента.
    • Приклад:
      <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE appnews> <appnews> <appid>440</appid> <newsitems> <newsitem> <gid>1904306376092568991</gid> <title>Prince of Prolander Event </title> <url>http://store.steampowered.com/news/externalpost/tf2_blog/1904306376092568991</url> <is_external_url>true</is_external_url> <author/> <contents><a href="http://rgl.gg/default.aspx"><img src="https://steamcdn-a.akamaihd.net/steam/news/29555/prince.png?t=1495219023"></a><br><br> <p><b>This Sunday at 4:30pm EST</b> <a href="http://rgl.gg/default.aspx" target="_blank">RGL.gg</a> is hosting their Prince of Prolander event. See legendary players <a href="https://www.youtube.com/user/stabbyvideo" target="_blank">Stabby</a> and <a href="https://www.youtube.com/user/danethebrain" target="_blank">Uncle Dane</a> duke it out to answer the age old question: Who is better? Spies or Engies? Come see them settle the score once and for all in the new competitive TF2 format, Pick/Ban Prolander. Be sure to tune in to <a href="https://www.twitch.tv/extvesports" target="_blank">Twitch</a> this Sunday, and witness this historic event!</p><br></contents> <feedlabel>TF2 Blog</feedlabel> <date>1495218420</date> <feedname>tf2_blog</feedname> <feed_type>0</feed_type> <appid>440</appid> </newsitem> </newsitems> <count>2385</count> </appnews>
  • VDF (Valve Data Format, формат даних Valve)

    • Це внутрішній формат даних Valve, що використовується іграми на рушії Source. Запит GetSchema в TF2 повертає дані, схожі на items/items_game.txt (однак якості не розширюються до об’єктів із полем value).
    • Документація доступна на вікі спільноти розробників Valve й на офіційній вікі Team Fortress 2.
    • Масиви подаються як VDF-масив із назвою типу об’єктів у масиві. VDF-масив є об’єктом, де кожне входження пронумероване як ключ у лапках.
    • Тип null подається як порожній рядок.
    • Приклад:
      "appnews" { "appid" "440" "newsitems" { "0" { "gid" "1904306376092568991" "title" "Prince of Prolander Event " "url" "http://store.steampowered.com/news/externalpost/tf2_blog/1904306376092568991" "is_external_url" "1" "author" "" "contents" "<a href=/"http://rgl.gg/default.aspx/"><img src=/"https://steamcdn-a.akamaihd.net/steam/news/29555/prince.png?t=1495219023/"></a><br><br> <p><b>This Sunday at 4:30pm EST</b> <a href=/"http://rgl.gg/default.aspx/" target=\"_blank\">RGL.gg</a> is hosting their Prince of Prolander event. See legendary players <a href=/"https://www.youtube.com/user/stabbyvideo/" target=\"_blank\">Stabby</a> and <a href=/"https://www.youtube.com/user/danethebrain/" target=\"_blank\">Uncle Dane</a> duke it out to answer the age old question: Who is better? Spies or Engies? Come see them settle the score once and for all in the new competitive TF2 format, Pick/Ban Prolander. Be sure to tune in to <a href=/"https://www.twitch.tv/extvesports/" target=\"_blank\">Twitch</a> this Sunday, and witness this historic event!</p><br>" "feedlabel" "TF2 Blog" "date" "1495218420" "feedname" "tf2_blog" "feed_type" "0" "appid" "440" } } "count" "2385" }

Для парсингу результатів запиту слід використовувати гнучке рішення, оскільки кожен метод повертає результати в довільному порядку.

Коди стану HTTP

Веб-API Steamworks за можливості намагається повернути відповідні коди стану HTTP.

Найпоширеніші:
КодТекстОпис
200OK (Гаразд)Успіх!
400Bad Request (Хибний запит)Будь ласка, переконайтеся, що надіслано всі необхідні параметри.
401Unauthorized (Доступ заборонено)Відмовлено в доступі. Повторні спроби не допоможуть. Перевірте свій параметр key=.
403Forbidden (Заборонено)Відмовлено в доступі. Повторні спроби не допоможуть. Перевірте свій параметр key=.
404Не знайденоЗапитаний API не існує.
405Method Not Allowed (Заборонений метод)У виклику використано хибний HTTP-метод, як-от GET чи PUSH.
429Too Many Requests (Забагато запитів)На вас накладено обмеження частоти.
500Internal Server Error (Внутрішня помилка сервера)Сталася невиправна помилка, будь ласка, спробуйте знову. Якщо продовжується, то напишіть в обговоренні розробників Steamworks із додатковими подробицями запиту.
503Service Unavailable (Служба недоступна)Служба тимчасово недоступна або надто зайнята для відповіді. Будь ласка, зачекайте і спробуйте знову пізніше.