Sem categoria

Geração de APIs do Couchbase com o DreamFactory

Esta é uma postagem de convidado escrita por W. Jason Gilmore (http://www.wjgilmore.com), CTO da DreamFactory, Inc., uma plataforma de automação e gerenciamento de APIs de código aberto. Antes de ingressar na DreamFactory, ele passou grande parte de sua carreira como consultor e desenvolvedor, ajudando equipes de todo o mundo a criar soluções de software incríveis. Jason é um escritor prolífico no assunto de tecnologias da Web, com quase uma dúzia de livros e mais de 300 artigos em seu currículo. Ele atua como consultor técnico especial para várias startups sediadas em Ohio e Nova York.

Jason Gilmore

As organizações modernas estão sob enorme pressão para processar e incorporar dados de forma eficiente em todas as iniciativas. De fato, a ênfase dada à extração, à compilação, à análise e à disseminação de informações é tanta que um campo de estudo totalmente novo, conhecido como ciência de dados surgiu para dar sentido a tudo isso (para aqueles que estão pensando que isso soa desconfiadamente acadêmico, observe que a Harvard Business Review chamou a ciência de dados de O trabalho mais sexy do século XXI.

A necessidade de APIs

Além de formalizar o processo de gerenciamento de dados, as equipes de TI têm adotado cada vez mais ambientes de bancos de dados heterogêneos e desenvolvimento orientado por APIs, em um esforço para garantir que os dados possam ser ingeridos, processados e distribuídos com o mínimo de atrito. Já se foi o tempo em que uma organização inteira padronizava um determinado fornecedor de banco de dados; em vez disso, agora é comum que as empresas adotem uma mistura de soluções SQL e NoSQL comerciais e de código aberto.

É claro que deve haver uma maneira sensata de gerenciar os dados à medida que eles fluem por esses bancos de dados, e é aí que entram as APIs. Como os bancos de dados geralmente precisam ser consultados em vários aplicativos (iOS, Web etc.), nos últimos anos os desenvolvedores têm evitado bibliotecas específicas de aplicativos, preferindo as APIs. Ao criar e se conectar a uma API uniforme, os desenvolvedores podem se concentrar no aplicativo em si, em vez de se preocuparem com o encanamento relacionado ao banco de dados.

Entrar no DreamFactory

Ou, pelo menos, essa é a ideia. A realidade é que a criação e a manutenção de uma API de banco de dados é um esforço extraordinariamente demorado e caro. Embora uma equipe experiente possa criar uma interface de API CRUD em algumas semanas, ela geralmente não leva em consideração os vários recursos adicionais necessários para o gerenciamento da API. Recursos como autenticação e autorização, limitação de volume de solicitações, armazenamento em cache e registro em log geralmente não são considerados no planejamento de uma API, e descobrir como implementar esses recursos de forma fragmentada pode ser extremamente difícil e caro.

Muitas organizações evitam essas dores de cabeça adotando um Plataforma de gerenciamento de API. Uma solução desse tipo particularmente popular é DreamFactory. Ele não só é de código aberto (versões comerciais que oferecem recursos avançados também estão disponíveis), mas também inclui suporte nativo para o Couchbase! Nesta postagem, você aprenderá como gerar uma API REST do Couchbase usando o DreamFactory em apenas alguns minutos e, em seguida, bloquear o acesso à API usando o recurso de gerenciamento de funções do DreamFactory.

Apresentando o DreamFactory

DreamFactory é uma estrutura de automação e gerenciamento de APIs usada por dezenas de milhares de organizações em todo o mundo. Embora sua popularidade decorra em grande parte da capacidade de gerar APIs seguras, documentadas e com todos os recursos para uma variedade de bancos de dados SQL e NoSQL sem necessidade de codificação, o DreamFactory, na verdade, oferece suporte a milhares de fontes de dados e serviços de terceiros, incluindo provedores de entrega de e-mail, serviços de notificação móvel, incluindo AWS SNS, Apple e GCM Push, e para converter serviços SOAP em REST.

O DreamFactory é compatível com um total de 18 bancos de dados, incluindo MySQL, Oracle, Microsoft SQL Server e... Couchbase! A geração de uma API é muito simples, exigindo apenas o fornecimento de um nome de API desejado e credenciais do servidor Couchbase. Para criar uma API, você começará fazendo login na interface de administração da Web do DreamFactory. Você poderá acessar os principais recursos do DreamFactory por meio da barra de navegação:

DreamFactory navigational bar

Crie o serviço clicando em Serviços então Criare, em seguida, escolha Couchbase do Banco de dados categoria:

Select the Couchbase database service

Em seguida, você escolherá um nome de API e definirá um rótulo e uma descrição. O nome é particularmente importante, pois, como você verá, ele servirá como uma espécie de espaço de nome para a API gerada. O rótulo e a descrição são apenas para fins de referência na interface de administração:

Couchbase configuration in DreamFactory

Depois de preencher esses campos, clique no botão Configuração e forneça suas credenciais do Couchbase:

Completed Couchbase configuration in DreamFactory

Além do Anfitrião, Porto, Nome de usuário e Senha opcionalmente, é possível limitar o número de registros retornados por um campo OBTER e ativar o cache de dados por um período de tempo definido. Para os fins deste tutorial, deixarei essas opções intocadas e apenas gerarei a API pressionando o botão Salvar botão.

Interagindo com a API

Depois que a API tiver sido gerada, você poderá navegar até a seção Documentos da API para fazer experiências com ela. O DreamFactory gera documentação Swagger para cada API, e os administradores podem fornecer aos usuários acesso restrito a essa documentação. Selecione a nova API e você verá uma lista de todos os pontos de extremidade disponíveis:

API endpoints created by DreamFactory

Escolha o GET /_schema e pressione a tecla Experimente botão. Como a documentação do Swagger é interativa, você pode aprender como a API funciona sem ter que ir direto para o código, o que pode reduzir bastante a frustração. Pressionando Experimente habilitará os vários campos de parâmetros associados a esse ponto de extremidade:

Detailed information about an API endpoint

OBSERVAÇÃO: devido à amplitude dos bancos de dados suportados e à importância dada ao fornecimento de uma interface de API de banco de dados uniforme, independentemente do tipo de banco de dados subjacente, o DreamFactory usa termos genéricos para se referir a estruturas relacionadas a bancos de dados. Logicamente, esses termos nem sempre mapeiam exatamente a terminologia específica do banco de dados. Por exemplo, o Couchbase usa o termo balde para representar um banco de dados, enquanto o DreamFactory usa o termo genérico esquema para essa representação.

Pressione o botão Executar e o ponto de extremidade da API será consultado, retornando todos os buckets disponíveis. Os usuários do Couchbase estarão familiarizados com a função amostra de viagem retornado na resposta a seguir:

Example of a response from an API endpoint

Acesso a dados da API

Em seguida, role para baixo até a seção GET /_table/{table_name} para recuperar registros (documentos) do amostra de viagem bucket. O processo para fazer isso é semelhante ao usado para recuperar os buckets; você selecionará o endpoint, pressionará Experimentee, em seguida, insira os parâmetros de endpoint de API desejados. Como você pode ver na captura de tela abaixo, esse endpoint é compatível com vários parâmetros:

API documentation

Quando se trata de selecionar registros, o DreamFactory oferece suporte a tudo o que você normalmente faria ao consultar um banco de dados. É possível selecionar campos específicos, unir tabelas, filtrar registros, aplicar limites e deslocamentos, e assim por diante. Para este exemplo, vamos manter a simplicidade e rolar para baixo até a parte inferior da lista de parâmetros e inserir amostra de viagem no nome_da_tabela parâmetro. Pressione Executar e você verá os seguintes resultados:

Couchbase results through DreamFactory

Geração de uma chave de API restrita

A interface API Docs é excelente para saber mais sobre o funcionamento de uma API, mas é inevitável que você queira começar a consultar a API em um aplicativo da Web ou móvel. Para isso, você deverá primeiro gerar um aplicativo Chave da API. Isso ocorre porque o DreamFactory não suporta o conceito de uma API pública; todas as APIs são protegidas, no mínimo, por uma chave de API. Além disso, cada chave de API é mapeada para uma função. As funções do DreamFactory determinam o que um cliente de posse de uma chave de API pode fazer em conjunto com a API. Por exemplo, você pode criar uma função que seja somente de leitura, ou que permita apenas o acesso a uma tabela específica do banco de dados, ou que possa inserir registros em uma tabela, mas ler registros de outra tabela.

Para criar uma função, navegue até a seção Funções e pressione Criar. Você atribuirá um nome e uma descrição à função e, em seguida, clicará no botão Acesso aba. É aqui que a mágica acontece. Na captura de tela a seguir, você verá que selecionei a guia couchbase API (serviço) e definir Componente para _table/travel-sample/*ou seja, a função só pode acessar esse conjunto de dados específico. Além disso, defini Acesso para OBTERo que significa que essa será uma função somente de leitura:

Create a DreamFactory role

Há alguns outros recursos interessantes aqui, mas, por uma questão de brevidade, sugiro apenas pressionar Salvar para gerar a função.

Em seguida, clique no botão Aplicativos para gerar uma chave de API. Pressione o botão Criar e você verá a seguinte interface:

Create a DreamFactory application

Aqui você fornecerá um nome e uma descrição do aplicativo. Você também escolherá uma função para essa chave de API e, neste exemplo, selecionei a recém-gerada couchbase função. Por fim, para o Localização do aplicativo Eu selecionei Não é necessário armazenamento porque estarei me conectando à API de um local remoto, como um aplicativo da Web. Pressione Salvar e você retornará à listagem de chaves do aplicativo:

Create a key for secure DreamFactory API access

Parabéns, você acabou de criar uma chave de API restrita somente para leitura! Agora vamos usar essa chave para falar com o bucket do Couchbase.

Conectando-se à sua API

Com sua chave de API em mãos, é hora de interagir com a API de fora da interface do DreamFactory. Para os fins deste exemplo, usarei o Cliente REST da Insomnia no entanto, você pode usar CarteiroOutro cliente de API, ou certamente pode criar uma interface simples para a Web ou para o iPhone. Na captura de tela a seguir, consultei a /api/v2/couchbase/_table/travel-sample e, no lado direito da interface, você pode ver os resultados:

Using Insomnia to interact with the REST API

De particular importância aqui é o X-DreamFactory-Api-Key header! É aqui que a chave da API é fornecida. Deixar de fornecer a chave resultará em uma mensagem 400 com uma mensagem de erro referente a uma chave ausente. Além disso, se essa chave tentar acessar uma tabela restrita ou executar uma ação (inserir, atualizar etc.) que não tenha sido expressamente permitida na definição da função, será gerado um 401 um código de status não autorizado será retornado.

Recursos

Esperamos que esta introdução ao DreamFactory tenha feito com que sua mente se concentre na rapidez com que você pode começar a criar aplicativos com base no Couchbase. Se você estiver interessado em saber mais, os recursos a seguir devem ser úteis:

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Matthew Groves

Matthew D. Groves é um cara que adora programar. Não importa se é C#, jQuery ou PHP: ele enviará solicitações de pull para qualquer coisa. Ele tem programado profissionalmente desde que escreveu um aplicativo de ponto de venda QuickBASIC para a pizzaria de seus pais nos anos 90. Atualmente, ele trabalha como gerente sênior de marketing de produtos da Couchbase. Seu tempo livre é passado com a família, assistindo aos Reds e participando da comunidade de desenvolvedores. Ele é autor de AOP in .NET, Pro Microservices in .NET, autor da Pluralsight e Microsoft MVP.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.