Manual API Sebrae
Transcrição
Manual API Sebrae
API SEBRAE Versão 1.1 Brasília 2015 Manual API SEBRAE HISTÓRICO DE VERSÕES Data Versão Descrição Autor 20/04/2015 1.0 Criação Via Appia Informática 08/07/2015 1.1 Melhorias Via Appia Informática SUMÁRIO 1 INTRODUÇÃO .................................................................................................................................................. 5 2 SERVIÇOS ......................................................................................................................................................... 5 2.1 FORMATOS DE ENTREGA ....................................................................................................................................... 6 2.2 AUTENTICAÇÃO ................................................................................................................................................... 6 3 SOAP ................................................................................................................................................................ 7 4 REST ................................................................................................................................................................. 7 5 IDEIAS DE NEGÓCIO ........................................................................................................................................ 8 5.1 SOAP ............................................................................................................................................................ 8 5.1.1 Consultar Ideias de Negócios por Título ............................................................................................ 8 5.1.2 Consultar Setor de Ideias de Negócios .............................................................................................. 9 5.1.3 Consultar Ideias de Negócios por setor ........................................................................................... 10 5.1.4 Consultar Ideias de Negócios por assunto ...................................................................................... 10 5.1.5 Obter Ideia de Negocio .................................................................................................................... 12 5.1.6 Obter Detalhes Tópico ..................................................................................................................... 13 5.2 REST ........................................................................................................................................................... 14 5.2.1 Consultar Ideias de Negócios por Título .......................................................................................... 14 5.2.2 Consultar Setor de Ideias de Negócios ............................................................................................ 15 5.2.3 Consultar Ideias de Negócios por setor ........................................................................................... 15 5.2.4 Consultar Ideias de Negócios por assunto ...................................................................................... 16 5.2.5 Obter Ideia de Negocio .................................................................................................................... 17 5.2.6 Obter Detalhes Tópico ..................................................................................................................... 18 1 INTRODUÇÃO Este documento tem a finalidade de descrever os serviços disponíveis na API do SEBRAE, possibilitando orientar o desenvolvimento de novas soluções utilizando as várias bases de dados existentes no sistema SEBRAE. Atualmente a API disponibiliza os serviços identificados para o sistema Ideias de Negócios através de Serviços WEB (WEB Services). A troca de dados ocorre em formato XML e o fato desse modelo ser baseado em tecnologias padrão é o maior benefício. Figura 1 - Visão Geral da Arquitetura da Solução BANCO DE DADOS Dados Dados Dados Dados Dados CAMADA DE ACESSO A DADOS API iHUB WEB SERVICES CLIENTES WEB SERVICES API iHUB WEB SERVICES API iHUB WEB SERVICES API iHUB WEB SERVICES API iHUB WEB SERVICES Fonte: Produção própria 2 SERVIÇOS Uma arquitetura que utiliza serviços tem a finalidade de garantir a reutilização das regras de negócio encapsulando-as em serviços distintos. Os serviços aqui descritos objetivam disponibilizar os conteúdos das bases de conhecimento do SEBRAE de maneira mais simples e centralizada. Além disto, graças a obrigatoriedade da identificação dos usuários/aplicativos que consomem os serviços disponibilizados na API, através do módulo de gerenciamento da API, seus gestores podem acompanhar informações sobre acessos aos métodos 5 por determinado usuário/aplicativo bem como gerar relatórios estatísticos sobre as informações mais e menos acessadas por determinado usuário/aplicativo. 2.1 Formatos de Entrega Devido a necessidade de facilidade para acesso às informações do Barramento da API através de vários tipos de plataforma tais como Plataformas Mobile (IOS Apple, Google Android, Microsoft Windows Phone e outros sistemas (B2B), optou-se por fazer com que o barramento seja responsável pela transformação dos dados em vários formatos. As informações são entregues em serviços (endpoints) distintos listados abaixo: REST - JSON – Javascript Object Notation; REST - XML – eXtensible Markup language; WSDL/SOAP – Webservice Descriptor Language – Simple Object Access Protocol. 2.2 Autenticação Para garantir uma maior segurança das informações disponibilizadas na API, bem como identificar os usuários e aplicativos que utilizam cada um dos serviços, todas as requisições aos métodos das API necessitam de identificação através de login, senha e identificação do aplicativo que está originando o acesso (token de autenticação). Os tokens de autenticação são fornecidos pelo gestor da API, sempre que solicitado. É importante ressaltar que tanto para requisições SOAP quanto REST, é necessário que o login e a senha sejam criptografados em BASE64. O algoritmo Base64 é amplamente conhecido pela internet. Trata-se de um algoritmo utilizado principalmente para converter dados binários em código alfanumérico. Para mais informações a respeito, sugerimos a leitura das informações no site http://tools.ietf.org/html/rfc989, mais especificamente na seção 4.3. 6 3 SOAP Em requisições SOAP, o login e senha devem ser enviados através do Header da requisição utilizando a tag “Authorization”. O valor da tag completo (login e senha) deverá ser criptografado em Base64, obedecendo o seguinte padrão de construção: Base64({#usuário}:{#senha}) Considerando o usuário alexandre e a senha alexandre, o cabeçalho passaria a ter o valor a seguir: Authorization: YWxleGFuZHJlOmFsZXhhbmRyZQ== Nos métodos de cada requisição SOAP, terá um item obrigatório que é a identificação do aplicativo, que também é usada para validar a requisição identificando o aplicativo que está originando o acesso ao método em questão. 4 REST Os serviços disponibilizados em REST, utilizam autenticação do tipo HTTP Basic, do qual consiste em passar no Header HTTP Authorization obedecendo o seguinte algoritmo: Basic Base64({#usuário}:{#senha}) Assim como nas requisições SOAP, também é necessário informar o aplicativo que está originando o acesso. Para isto, no header é necessário acrescentar a identificação do aplicativo que está realizando a solicitação do serviço. A tag a ser incluída no Header da requisição HTTP será AppId. Como valor deve ser informada a identificação do aplicativo no sistema da API do Sebrae. 7 5 IDEIAS DE NEGÓCIO 5.1 SOAP 5.1.1 Consultar Ideias de Negócios por Título Webmethod: consultarIdeiasPorTitulo Consulta que retorna as Ideias de Negócio a partir de uma descrição total ou parcial do título da Ideia de Negócio. O filtro é sempre realizado tomando-se por base o título do início para o fim da palavra. Exemplo: se como parâmetro de entrada da consulta for informado o fragmento “ad", então, serão retornadas todas as Ideias de Negócios cujos títulos iniciam com o fragmento “ad” (adega, adestramento de cães, administração de condomínios, etc.). Atributos de entrada Nome descTitulo Descrição Descrição total ou parcial do título da Ideia de Negócio Tipo Obrigatório String SIM String SIM Código ou APP ID que identifica identificadorAplicativo quem está chamando o serviço. (Aplicativo do desenvolvedor que utiliza o serviço) Atributos retornados Nome listaIdentificadoresIdeiasNegocio titulo identificadorIdeia Descrição Lista de Títulos e Identificadores das Ideias de Negócios Título da Ideia de Negócio Código identificador único da Ideia. Tipo Lista de objetos String String 8 5.1.2 Consultar Setor de Ideias de Negócios Webmethod: consultarSetorDeIdeias Consulta que retorna setores de Ideias de Negócio a partir de uma descrição total ou parcial do título do setor. O filtro é sempre realizado tomando-se por base o título do início para o fim da palavra. Exemplo: se como parâmetro de entrada da consulta for informado o fragmento “a", então, serão retornados todos os setores cujos títulos se iniciam com o fragmento “a" (Agroenergia, Apicultura, Aqüicultura e Pesca, Artesanato, etc.). Atributos de entrada Nome titulo identificadorSetor Título Descrição Tipo Obrigatório do setor (descrição) String SIM String SIM Código identificador único do setor / tópico. Atributos retornados Nome titulo identificadorSetor Título Descrição Tipo do setor (descrição) String Código identificador único do setor / tópico. String 9 5.1.3 Consultar Ideias de Negócios por setor Webmethod: consultarIdeiasPorSetor Consulta que retorna Ideias de Negócio a partir da identificação do setor da Ideia de Negócio. Atributos de entrada Nome Descrição Tipo Obrigatório identificadorSetor Identificador do setor String SIM String SIM Código ou APP ID que identifica identificadorAplicativo quem está chamando o serviço. (Aplicativo do desenvolvedor que utiliza o serviço) Atributos retornados Nome listaIdentificadoresIdeiasNegocio Descrição Lista de Títulos e Identificadores das Ideias Tipo Lista de objetos 5.1.4 Consultar Ideias de Negócios por assunto Webmethod: consultarIdeiasPorAssunto Consulta que retorna Ideias de Negócios a partir de uma descrição total ou parcial do assunto. Importante sublinhar que no presente contexto, assunto se refere as palavras-chave ou indexadores de cada Ideia de Negócio e não ao setor em que determinada Ideia de Negócio foi classificada. Apenas a título de informação, é importante ressaltar que na base de dados do Ideias de Negócios, os campos (metadados) setor e assunto são distintos e, portanto, não se confundem. O filtro é sempre realizado tomando-se por base o título do início para o fim da palavra. Exemplo: se como parâmetro de entrada da consulta for informado o fragmento “sal”, então serão retornadas todas as ideias de negócios cujos assuntos se iniciam com o fragmento “sal" (salão, salão de beleza, etc.). Observação: Nesta pesquisa somente serão retornados o título e a identificação das Ideias cujos assuntos atendem ao parâmetro de entrada informado. O conteúdo da ideia (capítulos) será retornado no método obterIdeiaDeNegocio. 10 Atributos de entrada Nome Descrição Tipo Obrigatório assunto Assunto a ser consultado String SIM String SIM Código ou APP ID que identifica identificadorAplicativo quem está chamando o serviço. (Aplicativo do desenvolvedor que utiliza o serviço) Atributos retornados Nome listaIdentificadoresIdeiasNegocio Descrição Lista de Títulos e Identificadores das Ideias de Negócios Tipo Lista de objetos 11 5.1.5 Obter Ideia de Negocio Webmethod: obterIdeiaDeNegocio Consulta que retorna o conteúdo (capítulos), total ou parcial de uma Ideia de Negócio a partir da identificação da Ideia de Negócio. Atributos de entrada Nome Descrição Tipo Obrigatório identificadorIdeia Identificador da Ideia de Negócio String SIM String SIM Código ou APP ID que identifica identificadorAplicativo q u e m está chamando o serviço. (Aplicativo d o desenvolvedor que utiliza o serviço) Atributos retornados Nome Descrição Tipo apresentacaoNegocio Apresentação da Ideia de Negócio String localizacao Localização da Ideia de Negócio String exigenciaLegal Exigências Legais específicas da Ideia de Negócio String pessoal Pessoal da Ideia de Negócio String equipamentos Equipamentos da Ideia de Negócio String materiaPrima Matérias Primas String organizacaoProcessoProdutivo automacao canaisDistribuicao Organização do processo produtivo da Ideia de Negócio Automações da Ideia de Negócio Canais de Distribuição da Ideia de Negócio String String String Investim entos Informações Fiscais e Tributárias String capitalGiro Capital de Giro da Ideia de Negócio String custos Custos da Ideia de Negócio String diversificacaoAgregacaoValor divulgacao informacoesFiscaisTributarias eventos Diversificação da Agregação de Valor da Ideia de Negócio Divulgação da Ideia de Negócio Informações Fiscais da Ideia de Negócio Eventos da Ideia de Negócio String String String String 12 entidadesGeral normasTecnicas Entidades Gerais da Ideia de Negócio String Normas Técnicas da Ideia de String Negócio glossario Glossário da Ideia de Negócio String dicasNegocio Dicas da Ideia de Negócio String caracteristicasEspecificasEmpree Características específicas para o endedor empreendedor da Ideia de Negócio bibliografiaComplementar tituloIdeia String Bibliografia Complementar da Ideia String de Negócio Título da Ideia de Negócio String 5.1.6 Obter Detalhes Tópico Webmethod: obterTopicoDaIdeia Retorna os detalhes dos tópicos a partir do identificador da Ideia de Negócio. Atributos de entrada Nome Descrição Tipo Obrigatório identificadorDaIdeia Identificador da Ideia de Negócio String SIM String SIM Enum SIM Código ou APP ID que identifica identificadorAplicativo quem está chamando o serviço. (Aplicativo do desenvolvedor que utiliza o serviço) topico Tópico da Ideia de Negócio a se obter os detalhes Atributos retornados Nome Descrição Tipo conteudo Conteúdo do tópico consultado String 13 5.2 REST Para as requisições REST, no Header da requisição HTTP deverão ser especificados dois atributos: Accept e Content-Type. Para o retorno e envio do conteúdo em JSON deverão ser informados: “application/json; charset=utf-8”, e para o retorno e envio de dados em XML: “application/xml; charset=utf-8”. Desta forma a API retornará o conteúdo de acordo com o que for solicitado na requisição. Isto garante ao desenvolvedor a flexibilidade de alterar somente o Header, sem maiores alterações no desenvolvimento da comunicação com a API. 5.2.1 Consultar Ideias de Negócios por Título Tipo: GET Path: /rest/ideias/titulo/{nome} Consulta que retorna Ideias de Negócio a partir de uma descrição total ou parcial do título da Ideia de Negócio. O filtro é sempre realizado tomando-se por base o título do início para o fim da palavra. Exemplo: se como parâmetro de entrada da consulta for informado o fragmento “ad", então, serão retornadas todas as ideias de negócios cujos títulos iniciam com o fragmento “ad” (adega, adestramento de cães, administração de condomínios, etc.). Atributos de entrada Nome {nome} Descrição Descrição total ou parcial do título da Ideia de Negócio Tipo Obrigatório String SIM Atributos retornados Nome listaIdentificadoresIdeiasNegocio titulo identificadorIdeia Descrição Lista de Títulos e Identificadores das Ideias de Negócio Título da Ideia Código identificador único da Ideia de N egócio. Tipo Lista de objetos String String 14 5.2.2 Consultar Setor de Ideias de Negócios Tipo: GET Path: /rest/ideias/setor/{nome} Consulta que retorna setores de Ideias de Negócio a partir de uma descrição total ou parcial do título do setor. O filtro é sempre realizado tomando-se por base o título do início para o fim da palavra. Exemplo: se como parâmetro de entrada da consulta for informado o fragmento “a", então, serão retornados todos os setores cujos títulos se iniciam com o fragmento “a" (Agroenergia, Apicultura, Aquicultura e Pesca, Artesanato, etc.). Atributos de entrada Nome Descrição Tipo Obrigatório {nome} Descrição total ou parcial do setor String SIM Atributos retornados Nome Descrição Tipo titulo Título do setor (descrição) String identificadorSetor Código identificador único do setor String / tópico. 5.2.3 Consultar Ideias de Negócios por setor Tipo: GET Path: /rest/ideias/ideia/setor/{identificadorsetor} Consulta que retorna Ideias de Negócio a partir da identificação do setor da Ideia de Negócio. Atributos de entrada Nome Descrição Tipo Obrigatório {identificadorsetor} Identificador do setor String SIM Atributos retornados Nome listaIdentificadoresIdeiasNegocio Descrição Lista de Títulos e Identificadores das Ideias de Negocio Tipo Lista de objetos 15 5.2.4 Consultar Ideias de Negócios por assunto Tipo: GET Path: /rest/ideias/ideia/assunto/{assunto} Consulta que retorna Ideias de Negócio a partir de uma descrição total ou parcial do assunto. Importante sublinhar que, no presente contexto, assunto se refere as palavras-chave indexadores de cada Ideia de Negócio não ao setor em que determinada Ideia de Negócio foi classificada. É importante ressaltar que, na base de dados das Ideias de Negócios, os campos (metadados) de setor e assunto são distintos e, portanto, não se confundem. O filtro é sempre realizado tomando-se por base o título do início para o fim da palavra. Exemplo: se como parâmetro de entrada da consulta for informado o fragmento “sal”, então, serão retornadas todas as ideias de negócios cujos títulos do assunto se iniciam com o fragmento “sal" (salão, salão de beleza, etc.). Observação: Nesta pesquisa somente serão retornados o título e a identificação das Ideias de Negócio cujos assuntos atendem ao parâmetro de entrada informado. O conteúdo (capítulos) da Ideia será retornado no método Obter Ideia de Negócio. Atributos de entrada Nome Descrição Tipo Obrigatório {assunto} Assunto a ser consultado String SIM Atributos retornados Nome listaIdeiasNegocio Descrição Lista de Títulos e Identificadores das Ideias de Negócios Tipo Lista de objetos 16 5.2.5 Obter Ideia de Negocio Tipo: GET Path: /rest/ideias/{identificadorIdeia} Consulta que retorna o conteúdo (capítulos) total ou parcial de uma Ideia de Negócio, a partir do identificador da Ideia. Atributos de entrada Nome Descrição Tipo Obrigatório {identificadorIdeia} Identificador da Ideia de Negócio String SIM Atributos retornados Nome Descrição Tipo apresentacaoNegocio Apresentação da Ideia de Negócio String localizacao Localização da Ideia de Negócio String exigenciaLegal Exigências Legais específicas da Ideia de Negócio String estrutura Estrutura Ideia de Negócio String pessoal Pessoal da Ideia de Negócio String equipamentos Equipamentos da Ideia de Negócio String materiaPrima Matérias Primas String organizacaoProcessoProdutivo automacao canaisDistribuicao Organização do processo produtivo da Ideia de Negócio Automações da Ideia de Negócio Canais de Distribuição da Ideia de Negócio String String String Investim entos Informações Fiscais e Tributárias String capitalGiro Capital de Giro da Ideia de Negócio String custos Custos da Ideia de Negócio String diversificacaoAgregacaoValor divulgacao informacoesFiscaisTributarias eventos Diversificação da Agregação de Valor da Ideia de Negócio Divulgação da Ideia de Negócio Informações Fiscais da Ideia de Negócio Eventos da Ideia de Negócio String String String String 17 entidadesGeral normasTecnicas Entidades Gerais da Ideia de Negócio String Normas Técnicas da Ideia de String Negócio glossario Glossário da Ideia de Negócio String dicasNegocio Dicas da Ideia de Negócio String caracteristicasEspecificasEmpree Características específicas para o endedor empreendedor da Ideia de Negócio bibliografiaComplementar tituloIdeia String Bibliografia Complementar da Ideia String de Negócio Título da Ideia de Negócio String 5.2.6 Obter Detalhes Tópico Tipo: GET Path: /rest/ideias/{identificadorIdeia}/topico/{topico} Retorna os detalhes dos tópicos a partir do identificador da Ideia de Negócio. Atributos de entrada Nome Descrição Tipo Obrigatório {identificadorDaIdeia} Identificador da Ideia de Negócio String SIM String SIM {tópico} Tópico da ideia a se obter os detalhes Atributos retornados Nome Descrição Tipo conteudo Conteúdo do tópico consultado String 18