Skip to content

Instantly share code, notes, and snippets.

@julianalucena
Forked from guiocavalcanti/gist:5577847
Created May 14, 2013 17:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save julianalucena/5577863 to your computer and use it in GitHub Desktop.
Save julianalucena/5577863 to your computer and use it in GitHub Desktop.

Descrição de Projeto: encapsuladores

Projeto 1

Este projeto consiste na criação do encapsulador para a API REST do Mural do Redu.

O que é um encapsulador?

Encapsularoes (para APIs REST), também conhecidos como wrappers, são bibliotecas que abstraem detalhes de rede na comunicação com serviços terceiros.

Por exemplo, para criar um post no mural de um usuário no Redu é necessário realizar uma requisição HTTP do tipo POST para a URL http://redu.com.br/apu/users/:user_id/statuses passando-se como payload o seguinte json:

{ "status": { "text": "Meu novo post" } }

Um encapsulador na linguagem Ruby faria este trabalho da seguinte forma:

client.create_post(:user => 12, :text => "Meu novo post")

Note que usuário do encapsulador não precisa ter conhecimento a respeito das requisições HTTP enviadas. Toda a interação é feita através de invocação de métodos e inicialização de objetos.

Requisitos

O encapsulador deve ser escrito em qualquer linguagem.

De preferência uma das descritas abaixo:

  • PHP
  • JavaScript (para browsers e servidores [Node.js])
  • Objective-C
  • C#
  • C++
  • Go
  • Lua
  • Haskell
  • Scala
  • Java
  • Python
  • Ruby
  • Shellscript
  • Perl

O encapsulador deve realizar a autenticação via OAuth2.

Vocês podem utilizar bibliotecas de terceiros para isso. É apenas esperado que quem for utilizar o encapsulador de vocês informem as credenciais cadastradas no Redu.

Para uma lista extensiva, porém não completa, de implementações de clientes OAuth2, visitem o site oficial. Uma busca no Github também pode ajudar.

O encapsulador deve ser livre

Vocês irão deter os direitos autorais, porém o código deve ser livre (as in freedom). Sugiro a licença MIT. O código devera ser disponibilizado em um repositório aberto do Github.

O encapsulador deverá ser documentado

Tanto o código quando o projeto deverá possuir documentação. No caso do projeto, um arquivo README na raíz do mesmo é suficiente. Não custa nada utilizar alguma linguagem de marcação como o markdown, textile, etc.

Lembrem-se de adicionar informações sobre como contribuir com o código.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment