COMO A RIOT GAMES FEZ UMA API ESCALÁVEL COM JAVASCRIPT

//COMO A RIOT GAMES FEZ UMA API ESCALÁVEL COM JAVASCRIPT

COMO A RIOT GAMES FEZ UMA API ESCALÁVEL COM JAVASCRIPT

 

INTRODUÇÃO

E ai pessoal, me chamo Antônio Hamilton e sou WebManager na SofTeam. Certa vez encontrei um artigo interessante sobre como a Riot Games construiu uma Api escalável. Ela é usada em várias sites conhecidos como o OP.GG, Pro builds, Blitz.gg, etc. Fiquei curioso de como tinha sido feito, qual tecnologia e em quanto tempo fizeram. Para minha surpresa eles precisavam fazer rapidamente, e adivinha, eles fizeram em JavaScript.

CONSTRUINDO A API

O objetivo deles em construir a API era evitar que serviços web fizessem scraping nos sites da Riot / no League of Legends, e eles precisavam disso o mais rápido possível, pois essas ações de scraping deixavam o carregamento do site da Riot mais lento, além de outros serviços.

A PRIMEIRA TENTATIVA: SHIM

Basicamente, a primeira tentativa de criar a API foi um fracasso. Eles criaram a API e utilizaram “Shim’s” para redirecionar os dados de maneira eficiente, de forma que dependendo da localização que fosse feita a requisição, eles poderiam mudar a linguagem da API automaticamente. Porém o erro estava na escalabilidade da aplicação, com uma quantidade grande de “Shim’s” e sem uma automação no processo da atualização dos “Shim’s”, sempre que algo fosse modificado seria necessário reimplementar os dados.

A SEGUNDA TENTATIVA: JAVASCRIPT API

Após o fracasso da primeira tentativa e perceber que não valia a pena utilizar os “Shim’s” para fazer modificações do retorno da API, eles perceberam que o retorno era sempre feito em JSON, e isso habilitou a possibilidade de utilizar JavaScript nos projetos… Ao invés de utilizar shim Api, eles pensaram em usar “filtros de transformação”, como eles chamaram, para fazer modificações de forma simples nas requisições, e como estaria tudo dentro de uma única API, era possível construir de forma genérica as respostas se utilizando desses filtros.

COMO VANTAGENS DE UTILIZAR O JAVASCRIPT, A RIOT CITOU NA POSTAGEM:

  • Handling Feature Requests: maneiras melhores de se lidar com as requisições feitas a  sua API;
  • Integrating Services: a facilidade de se integrar novas funcionalidades era muito maior que usando o shim, exatamente pela quantidade de bibliotecas que existem no JS e a compatibilidade mais aprofundada com o retorno em JSON;
  • Fixing Issues Quickly: uma vez que a lógica estava toda na configuração de uma única API, e como tudo era muito genérico, eles poderiam consertar mais facilmente os problemas, sem precisar reimplementar algo.

CONCLUSÃO

A utilização do JavaScript possibilitou que a Riot Games criasse uma API extremamente utilizada em vários sites na internet, e muito rentável. Hoje eles vendem alguns serviços específicos da sua API para alguns sites de aposta, ou mesmo para sites onde podemos ver informações. E por fim, todo o trabalho de fazer um código mais generalista compensou, pois hoje é muito mais fácil fazer correções de bugs e novas implementações.

Então é isso pessoal, pensem nos seus códigos de maneira que outras pessoas entendam e o mais genérico possível.

Antônio Hamilton – WebManager na SofTeam |

Empresa Júnior de Computação

Dúvidas?

antoniohamilton.s.freitas@gmail.com /

www.linkedin.com/in/antonio-hamilton

 

By |2020-07-04T20:34:09-03:00junho 23rd, 2020|Tecnologia|1 Comment

About the Author:

One Comment

  1. Kathleen 29 de junho de 2020 at 13:33 - Reply

    The games enable conversation and transmission involving the gamers, through webcam and online messengers.

Leave A Comment