Recentemente, a Marvel disponibilizou uma API pública e um serviço RESTful que fornece acesso aos metadados dos seus quadrinhos.
Roberto Medrano, Vice-Presidente Executivo na SOA Software, considera que as APIs web terão uma "adoção massiva" nos anos seguintes. Não somente essas APIs irão guiar o desenvolvimento de aplicações móveis, mas aplicação móvel + cloud formam uma grande combinação: "quando as APIs são usadas por meio da nuvem, suas possibilidades em conectar e entregar são exponencialmente mais fáceis comparado com outras plataformas tradicionais." Além disso, centros de dados definidos por software dependerão de APIs, a "Internet das Coisas se tornará a API das Coisas", SOA e APIs serão mais e mais vistas como complementares, e eventos REST irão evoluir por meio da contribuição de "novos padrões como WADL, Swagger, RAML e outros, todos devidos a sua flexibilidade estes irão preencher algumas lacunas deixadas pelo REST e as deficiências que ele tem com a definição de descrição de serviços" de acordo com Medrano.
Não é de admirar que até mesmo os quadrinhos da Marvel podem agora ser acessados através de uma API pública. Além de sua atração em uma perspectiva de entretenimento, a API Marvel Comics é um exemplo de como a uma API web deve ser projetada. A Marvel executa um serviço RESTful provendo respostas em formato JSON para requisições HTTP, o endpoint atualmente suporta somente requisições GET.
Os recursos da API Marvel são:
- Quadrinhos: impressões individuais e assuntos de quadrinhos digitais, coleções e graphic novels. Por exemplo: Amazing Fantazy #15.
- Séries de Quadrinhos: numerados sequencialmente (bem, a maioria é numerada sequencialmente) um grupo de quadrinhos com o mesmo título. Por exemplo, Uncanny X-Men.
- Histórias em Quadrinhos: Indivisível, componentes de quadrinhos reutilizáveis. Por exemplo: a capa da Amazing Fantasy #15 ou a origem do Homem-Aranha.
- Evento de Quadrinhos e Crossovers: Grande, universo alterando as linhas das histórias. Por exemplo: Infinity.
- Criadores: Mulheres, homens e organizações que criam os quadrinhos. Por exemplo: Jack Kirby.
- Personagens: mulheres, homens e organizações, espécies alienígena, deuses, animais, entidades não-corporais, manisfestações trans-dimensionais, personificações abstratas, e bolhas amorfas verdes, o qual ocupa o Universo Marvel (e vários universos alternativos, linhas do tempo e realidades alteradas nele). Por exemplo, o Homem Aranha.
Um exemplo de uma requisição para os personagens dos Vingadores se parece com isso:
http://gateway.marvel.com:80/v1/public/characters/1009165?apikey=xxxxx
E uma resposta resumida é:
{ "code": 200, "status": "Ok", "etag": "e52e95f71334d797c3c2d0cf144bcc3e611718db", "data": { "offset": 0, "limit": 20, "total": 1, "count": 1, "results": [ { "id": 1009165, "name": "Avengers", "description": "Earth's Mightiest Heroes joined forces to take on threats that were too big for any one hero to tackle. With a roster that has included Captain America, Iron Man, Ant-Man, Hulk, Thor, Wasp and dozens more over the years, the Avengers have come to be regarded as Earth's No. 1 team.", … } ] } }
A API Marvel Comics suporta autenticação, versionamento, recuperação de coleções de recursos ou recursos específicos pelo ID, cruzamento de origens de solicitações, compressões e Tags utilizadas para evitar o retorno da mesma resposta mais de uma vez, se o conteúdo não mudou desde a primeira requisição. A base de dados inclui uma ampla coleção de imagens como a mostrada acima, a qual foi recuperada utilizando o caminho disponibilizado na resposta da API Avengers. Desenvolvedores são limitados a 1.000 requisições/conta à API.
O eBook do Apigee "Web API Design: Crafting Interfaces that Developers Love" fornece conselhos detalhados sobre o desenho de APIs web.