Back-End

9 jun, 2017

Netflix OSS: requisições de Batch com Ruby on Rails e Ember.js

Publicidade

A Netflix anunciou o lançamento de três bibliotecas open source relacionadas a requisição de Batch com Ruby e Ember.js. São elas:

Com o processamento Batch é possível passar várias operações em uma única requisição HTTP. É possível fazer uma requisição Batch da interface de usuário da Ember e processá-la em um backend Rails? Com as bibliotecas Ember Batch Request e a Batch Request API para recuperação, é. Um array JSON de requisições HTTP é criado na interface do usuário utilizando um complemento Ember, e, em seguida, processada sequencialmente ou um paralelo na API backend por meio do Middleware Rails.

Porquê

A utilização é útil para criar m número elevado de criações/atualizações/exclusões em uma transação, devido a uma única requisição de rede. Pensanado em performance de aplicações, um dos pontos chaves é uma consulta eficiente no banco de dados. devido a uma única requisição de rede. E com estas duas bibliotecas isso é possível sem muitas dificuldades.

Uso

Na API do Rails, uma vez que a gem batch request api é adicionada, a aplicação obtém o middleware para lidar com a requisição de batch recebida da interface de usuário da Ember.

Na interface de usuário Ember, o addon ember-batch-request oferece 3 novos métodos de armazenamento para fazer requisições de batch.

Create:

this.store.batchCreate(arrayOfObjects).then((response) => { });

Update:

this.store.batchUpdate(arrayOfObjects).then((response) => { });

Delete:

this.store.batchDelete(arrayOfObjects).then((response) => { });

Além disso, a Netflix também lançou o Batch Request Client para nos auxiliar a fazer requisições de batch de outra aplicação Rails, caso você não esteja usando o Ember.js.

Batch Request Payload:

{
  "requests": [
   {
    "method": "POST",
    "url": "/api/v1/movies",
    "body": { }, { }
   }
 ]
}

Batch Request Response:

[
 {"status"=>200, "headers"=>{}, "response"=>{}},
 {"status"=>200, "headers"=>{}, "response"=>{}}
]

Dependência

Atualmente, funciona com aplicações Rails e Ember usando a JSON API spec.

Trabalho futuro

A Netflix planeja tornar as bibliotecas JSON API spec agnósticas e adicionar mais recursos.

 

***

Fonte: https://medium.com/netflix-techblog/netflix-oss-batch-requests-with-ruby-on-rails-and-ember-js-4dfdd4b351da