Перейти к содержимому

Донат
На хостинг
ISK за переводы
до 75kk за 1000зн.
Хроники EVE
Сборник
Новичкам
Полезная информация
Фотография

[девблог]Представляем ESI - Новый API для EVE ONLINE

dev esi

  • Авторизуйтесь для ответа в теме
28 ответов в теме

#1
Deornot

Deornot

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 449 сообщений
288
  • EVE Ingame:Deornot
  • Corp:NPC
  • Client:Eng

ПРЕДСТАВЛЯЕМ ESI  - НОВЫЙ API ДЛЯ EVE ONLINE

 

Примечание: данный девблог в первую очередь предназначен для сторонних разработчиков и технически грамотных капсулёров. Если вы хотите пропустить жаргон, прокрутите вниз где найдёте TL;DR

 

Предыстория

 

В тот момент когда XML API был впервые опубликован, это было прорывом. До этого момента ни одна видеоигра не предоставляла такого доступа к своим данным, что позволило игрокам сделать удивительные вещи. EVEMon и EFT это легендарные инструменты которые поддерживают EVE годами, и они присоединились к множеству новаторских и действенных решений созданных игроками основываясь на XML API. Но  XML API имеет предел, возможность использования только определенных данных, только чтение данных и порой медленное реагирование на внутриигровые события. Серьёзно, протоколирование XML API  это тихий ужас, постоянные отставания от реальной версии игры и по сути никакого развития.

 

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

 

Также в идеале CREST планируется сделать само индексируемым. Комбинация автоматически генерируемых вызываемых опций и примеров связанных с корневой структурой API обеспечивает фактически полную само индексацию API. Это привело к определенным успехам, и сбор данных CREST API это, безусловно, хороший способ для пользователей изучить его. Однако, выявлены и определенные проблемы. Огромная часть данных не может быть индексированы пока не выполнены определённые игровые условия,такие как правильное определение корпоративных ролей или определение владельца цитадели, и не все ресурсы корректно привязываются. Это довольно трудно объяснить почему у вас нету доступа к определенным вещам. Разработчики CREST до сих пор ссылаются на сторонние протоколы для полного описания API. Это была смелая попытка, но этого явно недостаточно.

 

CCP всегда был в авангарде API разработок в игровой индустрии, и мы не собираемся останавливаться на достигнутом и почивать на лаврах. Мы видели как хорошо было принято создание CREST и XML API, мы учли критические ошибки, и сейчас наступило время модернизации. Читать ниже…

 

Тем временем, в целом в игровой индустрии...

 

За последнии несколько лет, индустрия програмного обеспечения занималась разработкой различных и рассмотрением архитектуры различных API. Сначала из все этого хаоса возникла стандартная схема JSON, а потом уже из неё спецификация Swagger. Это основной концепт ESI, давайте послушаем что сам swagger говорит о себе:

 

Swagger™это программа используемая для описания и записи RESTful APIs.

 

Спецификация swagger определяет набор файлов требуемых для описания определенного API.  Данные файлы могут быть использованы системой   Swagger-UI для отображения API и Swagger-Codegen для создания клиентской части на различных языках. Дополнительные утилиты также могут получать преимущество от полученных в результате файлов, например инструменты тестирования.

 

Swagger это широко применяемый стандарт описания API, и поддерживается несколькими авторитетными компаниями, что даёт определённую уверенность в его долговечности и поддержке клиентских библиотек, пользовательского интерфейса и прочих инструментов. Выбор спецификации Swagger (сейчас известной как OpenAPI) избавляет нас от лишней работы, и дает нам четкий ориентир для построения в отличии любой пользовательской конфигурации.

 

Это тот фундамент который мы выбрали для построения EVE Swagger Interface, тот каркас объединяющий  части спецификаций из многочисленных служб Kubernetes в единый механизм, который в тоже время занимается маршрутизацией, аутентификацией, вводом/выводом данных, и многими другими функциями.

 

EVE Swagger Interface  (кратко ESI, произносится "изи") использует Flask и Python 3.4+  внутренне, а возможность использовать обобщённые настройки достаточна для поддержки любых  внешних (или неавторизованных), многопользовательских API работающих в кластерах Kubernetes.

 

Чем является ESI для нас?

 

В течении последних нескольких месяцев,  мы использовали и развивали платформу ESI для построения новых API с нуля. ESI API это ESTful, SSO авторизация, первичное индексирование, совместимость с основными шаблонами, горизонтально масштабируемые, читаемо/записываемые API. Всё это позволило вернуть мобильное приложение EVE и запустило кластер Kubernetes в Google Cloud (Kubernetes is невероятен btw). Что чёрт возьми всё это значит?

 

RESTful и SSO авторизация  означает, что вы будете работать с новой системой во многом так же, как и с CREST. Если вы планируете использовать токен авторизации для своих HTTPS запросов, и если до этого вы работали с системой разработки CREST, то вы не будете испытывать не никаких проблем при работе с новой системой

 

Первичное индексирование означает что внутри системы мы использовали инструкции  Swagger’а для генерации наших APIs. Первый шаг для создания или обновления конечного результата какого-либо действия это создание или обновления соответствующей инструкции, что определяет всю нашу внутреннюю структуру данных для обработки конечного результата, и это значит что протоколы данных всегда обновлены потому что они интегрированы с основной частью кода конечного результата. Don't look now, but we might have solved this documentation gremlin. В дополнение к всему инструменты Swagger позволяют сторонним разработчикам использовать свой код для создания интерфейса для ESI API  на том языке который они выберут. Огромный кусок времени разработчика который раньше тратился на построение интерфейса для CREST и XML API теперь освобожден от этой шаблонной работы. (мы заменили вас на роботов, простите.)

 

Совместимость с основными шаблонами означает что мы использовали основные инструменты индустрии разработки. Мы постарались добавить по минимуму специальных инструментов только там где без этого не обойтись, в остальном же  мы старались заменять кастомные вещи на готовые стандартные опенсорс решения когда это было возможно. Ещё никогда EVE API не был так лёгок в обслуживании и масштабировании, что открывает недоступные ранее возможности. Небольшие патчи могут отправляться с компьютера разработчика к его приложению в течении минут, и если это необходимо все изменения могут быть с практически нулевой задержкой откатаны назад в любом направлении.

 

Горизонтальное масштабирование - это изящное решение которое мы позаимствовали у Kubernetes. Так как все ESI коды которым не требуется быть специально запущенными на нашем сервере Транквилити, а также не требуется запуска на Google Cloud, мы можем управлять подключением  новых ESI контейнеров на каждый результирующий базис которому это необходимо, и выключением этих компонентов когда они  больше не нужны.

 

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

 

Так что насчёт старых XML API и CREST?

 

Ещё рано паниковать. Мы пришли сюда не для того чтобы объявить о том что мы незамедлительно уничтожим все ваши  приложения и вам необходимо немедленно переписать весь код, но мы считаем нужным обсудить приведение кода в порядок и его фрагментирование. Поддержка тройки API с похожим , но не пересекающимся функционалом увеличивает техническую сложность создания рабочих EVE API моделей, и это забирает время у тех. группы которые они бы потратили на разработку новых инструментов и обслуживание нового инструментария. Всё это уменьшает гибкость и увеличивает  нестабильность, и это не есть хорошо в плане долгосрочного развития.

 

Как только мы воссоздадим все текущие возможности CREST и XML API в ESI, мы сразу же закроем оба этих сервиса. Мы запланировали 18 месяцев от релиза этого блога до достижения ESI требуемого функционала и мы будем работать с разработчика приложений для апгрейда их продуктов. Удаление необходимости использования XML API наша главная цель. Мы будем следить за использования XML API и CREST для идентификации  и помощи разработчикам сторонних программ в их переходе на новую систему.

 

Это будет аккуратный и планомерный уход от старой системы. Первым шагом этого процесса является то что с момента выхода этого блога, CREST и XML API официально находятся только в режиме поддержания в рабочем состоянии.

Мы будем продолжать выпускать обновления для защиты данных и исправления критических ошибок к ним, но все новые запросы будут исполнятся ESI API.

 

Ранний доступ

 

В течении последнего месяца мы плотно работали с несколькими активными членами сообщества разработчиков сторонних сервисов для EVE, включая:

 
 
 

Мы взаимодействовали с этими командами , так же как и с фокус группами , для получения отзывов на раннии этапы развития проекта и некоторые первоначальные проектные решения. Ниже вы можете увидеть что они могут сейчас сказать о своих впечатлениях:

 

Введение ESI, как нового API, довольно близко к тому как работает CREST, поэтому переход на новую систему должен пройти довольно таки легко. Также это решает проблему главного “пугала” разработчиков API приложений  для EVE. Нехватки документации и примеров. Использование Swagger облегчит работу с API, и уберет проблему некоторых несоответствий из списка проблем разработчиков. Наконец открыта возможность отправлять EVEMail, так же как и получать их, это большой прорыв, что допускает возможность создавать некоторые автоматизированные сервисы , что раньше было невозможно.   

        - Steve Ronuken

 

ESI это решение проблемы над которой CCP билось несколько лет: возможность быстро и легко обновлять API для сторонних разработчиков.  Последнии несколько недель разработчики с которомы я работал показывали какой  ESI адаптируемый, а также ка в него легко добавлять новые возможности. Я знаю множество сторонних разработчиков не очень рады перспективе переписывания множества своих утилит, и я один из них, но эта та цена которую придётся заплатить за технический прогресс. CCP уводит от технической отсталости и ведёт нас в направлении технического прогресса. EveWho.com уже использует утилиты на базе ESI и я тихо радуюсь результатам их работы.

        - Squizz Caphinator

 

EVE Swagger Interface объединяет возможности  XML AP с инновациями CREST в то время как введение в документацию является официальной фичей.  CREST’о подобные системы позволили людям делать замечательные вещи с динамическими языками (имеются в виду языки программирования , я так думаю - прим. пер.), ESI ближе тем из нас кто любит использовать статические языки; предоставляя более строгий разрешенный интерфейс  и улучшая пользовательские аспекты CREST.  Я верю что этот проект прекрасная возможность последующего улучшения  CREST, модернизации XML API, и разработка приложений для EVE станет более доступна для новичков.

            - Lucia Denniard

 

TL;DR

 

Новый API приходит в EVE, его зовут ESI. Он основывается на OpenAPI Specification, полностью документирован и сделает вашу жизнь проще если вы захотите сделать приложение для EVE Online. Он будет вводиться в течение нескольких месяцев, и уже сейчас обрабатывает до 4,5 миллионов запросов в день.

 

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

 

Новый подход уже используется в новом EVE mobile app, так же как и программах сторонних разработчиков. Вы можете проверить это на себе прямо сейчас, перейдя по ссылке https://esi.tech.ccp.is/

 

Вопросы, комментарии, проблемы? Мы будем следить за темой как на EVE Online forums так и на Reddit, или ловите кого-нибудь из команды разработчиков в tweetfleet slack (@ccp_snowedin, @ccp_bartender, @ccp_aquarhead, @ccp_chimichanga), мы всегда где то рядом с каналом #devfleet. Также мы открываем новый канал специально для обсуждения ESI и помощи, также в tweetfleet slack, канал называется #ESI.

 

В славное будущее!

 

PS: если вас всё ещё интересует дезайн ESI, загляните в следующий блог Introducing the ESI API.

 

       

 

Кстати товарищи кто разбирается в предмете смело указывайте на ошибки. Поправлю.


Сообщение отредактировал Deornot: 05 December 2016 - 13:47

  • 5

"Я не бюро добрых дел, а ведьма с бизнесом" (с)

 


#2
Jack Hareka

Jack Hareka

    белко

  • Tech III Pilots
  • PipPipPipPipPip
  • 3583 сообщений
1427
  • EVE Ingame:Jack Hareka
  • EVE Alt:Calsys
  • Corp:Monks of War
  • Client:Eng

нотификаций нет

пусть идут в жопу со своим ТРЕТЬИМ АПИ за несколько лет

:facepalm:  :facepalm:  :facepalm:


  • 1

#3
Данкан

Данкан

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 537 сообщений
313
  • EVE Ingame:Dunkan Su-Shiloff
  • Client:Рус

Я только нормально разобрался с CREST...


  • 0
 
 
Знание некоторых принципов легко компенсирует незнание некоторых фактов.
(© Гельвеций)

#4
Marchelo

Marchelo

    Время несвежих историй и липких сообщений наступило!

  • Tech III Pilots
  • PipPipPipPipPip
  • 2788 сообщений
866
  • EVE Ingame:Marche Lo
  • Client:Eng

нотификаций нет
пусть идут в жопу со своим ТРЕТЬИМ АПИ за несколько лет
:facepalm:  :facepalm:  :facepalm:

В славное будущее!
  • 0
Изображение

#5
Vollhov

Vollhov

    Clone Grade Omicron

  • Tech III Pilots
  • PipPipPipPipPipPipPipPipPipPip
  • 18528 сообщений
2601
  • EVE Ingame:Vollhov Jr (Vollhov)
  • DUST Ingame:Такой игры не существует
  • EVE Alt:-
  • Corp:НПС Бомж
  • Ally:Амарычи
  • Client:Рус

А зачем еще один Айпи ? :blink:


  • 0

ihnLXpl.jpg

Скорость нужна, а поспешность вредна. (С) Суворов.

 


#6
Marchelo

Marchelo

    Время несвежих историй и липких сообщений наступило!

  • Tech III Pilots
  • PipPipPipPipPip
  • 2788 сообщений
866
  • EVE Ingame:Marche Lo
  • Client:Eng

А зачем еще один Айпи ? :blink:


Не "ещё один", а новый, поглотивший предыдущие.
  • 0
Изображение

#7
Vollhov

Vollhov

    Clone Grade Omicron

  • Tech III Pilots
  • PipPipPipPipPipPipPipPipPipPip
  • 18528 сообщений
2601
  • EVE Ingame:Vollhov Jr (Vollhov)
  • DUST Ingame:Такой игры не существует
  • EVE Alt:-
  • Corp:НПС Бомж
  • Ally:Амарычи
  • Client:Рус

Не "ещё один", а новый, поглотивший предыдущие.

А название зачем менять :laugh: Не проще просто старый улучшить.


  • 0

ihnLXpl.jpg

Скорость нужна, а поспешность вредна. (С) Суворов.

 


#8
unti1x

unti1x

    Chaotic neutral

  • Tech III Pilots
  • PipPipPipPipPipPipPipPip
  • 8535 сообщений
1949
  • EVE Ingame:Chio Olgidar
  • Corp:-CDP-
  • Channel:Crevetize
  • Client:Eng

А название зачем менять :laugh: Не проще просто старый улучшить.

Ну, если перечитать статью и вникнуть в детали, то становится понятным тот факт, что новый апи не будет сильно отличаться от CREST по структуре. А вот потроха изменятся. Видимо, были проблемы с документированием (до сих пор на половину методов нету) и реализация могла бы быть немного проще, поэтому они решили перейти на Swagger и реализовать всё это отдельным проектом. Не самый плохо вариант. Фактически, это и есть то самое улучшение старого API.



В качестве приятного бонуса они получают морду для генератора кода костылей.


Сообщение отредактировал unti1x: 05 December 2016 - 15:06

  • 0

Аффтар, зохавай исчо тех аццких олбанских креведок, да выпей йаду.


#9
advena

advena

    Clone Grade Nu

  • Tech III Pilots
  • PipPipPipPipPipPipPipPip
  • 8241 сообщений
1046
  • EVE Ingame:Advenat Bedala
  • Corp:.MLP.
  • Client:Eng

А зачем еще один Айпи ? :blink:

В какой-то момент разработка заходит в такую ****, что проще всё выбросить и начать с начала.

 

Цитадели тому пример.


  • 1

В мире победившего капитализма всего два всадника апокалипсиса - Глупость и Жадность. Остальных оптимизировали.

 

Чтобы попасть в рай верующему надо умереть. Атеисту - выжить.


#10
L0SER

L0SER

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 3393 сообщений
1385
  • EVE Ingame:l0ser18q
  • Corp:po ny
  • Ally:oos
  • Client:Eng

А потом из штата уйдёт разработчик, занимавшийся ESI, и ццп представит миру более правильный, улучшенный и основанный на mashape совершенно новый EPIv4.

И конечно же к нему будет сразу прикручена двухфакторная авторизация для удобства и безопаности.


Сообщение отредактировал L0SER: 05 December 2016 - 14:59

  • 6
Out of Sight. ищет новых пилотов и корпорации. \o/

#11
Jack Hareka

Jack Hareka

    белко

  • Tech III Pilots
  • PipPipPipPipPip
  • 3583 сообщений
1427
  • EVE Ingame:Jack Hareka
  • EVE Alt:Calsys
  • Corp:Monks of War
  • Client:Eng

Не "ещё один", а новый, поглотивший предыдущие.

ага, проглотивиший... 

глубокая глотка ццп стайл :laugh:

 

ничо он не поглотил, вот когда будет иметь ВЕСЬ функционал хмл и креста, тогда и будет считаться поглотившим эти апи

<_<


  • 0

#12
Khallath

Khallath

    (\/)O_0(\/)

  • Tech III Pilots
  • PipPipPipPipPip
  • 1456 сообщений
254
  • EVE Ingame:Savant Alabel
  • Client:Eng

Цитируя великих: Stable API is nonsense.

 

И да, без подписки на события - ненужно.


Сообщение отредактировал Khallath: 05 December 2016 - 15:39

  • 0

Ты еда, твое место на кб, ты летаешь в долг на чужих исках


#13
unti1x

unti1x

    Chaotic neutral

  • Tech III Pilots
  • PipPipPipPipPipPipPipPip
  • 8535 сообщений
1949
  • EVE Ingame:Chio Olgidar
  • Corp:-CDP-
  • Channel:Crevetize
  • Client:Eng

На самом деле, я ничего не имею против того, чтобы была одна, и желательно только одна, апишка.

 

PEP-20

 

There should be one-- and preferably only one --obvious way to do it.


  • 0

Аффтар, зохавай исчо тех аццких олбанских креведок, да выпей йаду.


#14
PANZER1233000

PANZER1233000

    Clone Grade Iota

  • Tech III Pilots
  • PipPipPipPipPip
  • 1590 сообщений
-592
  • EVE Ingame:PANZER1233000
  • DUST Ingame:-
  • Corp:SLK X
  • Ally:Пет гунов :D
  • Client:Eng

В какой-то момент разработка заходит в такую ****, что проще всё выбросить и начать с начала.

Цитадели тому пример.

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

95009125.png


#15
KickingBear

KickingBear

    Clone Grade Delta

  • Tech III Pilots
  • PipPip
  • 168 сообщений
18
  • EVE Ingame:Альфач
  • Client:Рус

Классика:

 

У нас есть три стандарта, которые мы вынуждены поддерживать. Давайте напишем новый-стильный-молодежный и похороним предудущие. Спустя n-времени: у нас есть четыре стандарта которые мы должны поддерживать.


  • 4

#16
FerrusManus

FerrusManus

    Clone Grade Lambda

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 4030 сообщений
624
  • EVE Ingame:Captain Semper
  • Corp:Weyland-Yutani
  • Ally:Brothers of Tangra
  • Client:Eng

Классика:
 
У нас есть три стандарта, которые мы вынуждены поддерживать. Давайте напишем новый-стильный-молодежный и похороним предудущие. Спустя n-времени: у нас есть четыре стандарта которые мы должны поддерживать.

Потому что не могут похоронить, жалеют людей.
  • 0
Изображение

#17
KickingBear

KickingBear

    Clone Grade Delta

  • Tech III Pilots
  • PipPip
  • 168 сообщений
18
  • EVE Ingame:Альфач
  • Client:Рус

Потому что не могут похоронить, жалеют людей.

Можно все. Вопрос времени и денег.


  • 0

#18
Korvin

Korvin

    продолжаю наблюдение

  • Tech III Pilots
  • PipPipPipPipPipPipPip
  • 7066 сообщений
2605
  • EVE Ingame:Korvin
  • DUST Ingame:RIP
  • EVE Alt:Alpha Korvin
  • Corp:Shadow Kingdom
  • Ally:Best Alliance
  • Client:Eng

Лучше бы лаги пофиксили браузер вернули.


  • 2

#19
Merazor

Merazor

    O'rly?

  • EVE-RU Team
  • 22183 сообщений
4687
  • EVE Ingame:Odris Meza
  • Corp:Polite Fish
  • Client:Eng

Больше апи богу апи, опять все борды и ресурсы влягут внебытие....  :facepalm:


  • 0
Posted Image

#20
Cloned Mark

Cloned Mark

  • -10.0
  • PipPipPipPipPip
  • 1871 сообщений
211
  • EVE Ingame:Cloned Mark
  • Corp:Slozhno
  • Ally:MI22
  • Client:Eng

Без Крекера обсуждение в этой теме неполноценно :)


  • 0

Specially for Numator!





0 посетителей читают тему

0 members, 0 guests, 0 anonymous users