Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Monan Bertoluci

API - Interface de Programação de Aplicativos

Recommended Posts

Pessoal, a algum tempo atrás.. mais especificamente uma semana, postei aqui no fórum algumas duvidas que tinha em relação ao reconhecimento óptico de caracteres, estava desenvolvendo meu TCC utilizando este tema, no entanto, cheguei a conclusão de que não terei tempo para desenvolver tal aplicativo, pois, além de ser um tema escasso em bibliografias, é um tema complexo que exige uma demanda de tempo extremamente alta para construção do sistema. Sem contar que como estamos falando a nível academico é obrigatório a utilização de casos de uso, e outras "papeladas" no ramo de engenharia de projeto para que o tema seja aceito pela faculdade.

 

Com o objetivo de salvar meu TCC e evitar uma possivel reprovação, comecei a pensar em um tema mais simples, que envolva apenas o levantamento de informações e exemplos...

 

Contudo, tive uma idéia.. depois de tanto quebrar a cabeça... pensei em falar a respeito de APIS em aplicações web ressaltando suas vantagens e desvantagens, no entanto, para que eu possa realizar tal levantamento, devo me basear em artigos publicados, ou rapidas entrevistas com quem atua no ramo.

 

Gostaria que saber se alguem aqui conhece algum artigo, tcc, matéria ou qualquer coisa relacionada ao tema... com base em algumas pesquisas consegui levantar os seguintes links:

 

http://www.baixaki.com.br/info/1807-O-que-e-API-.htm

http://www.programmableweb.com

pt.wikipedia.org/wiki/API

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gostaria que saber se alguem aqui conhece algum artigo, tcc, matéria ou qualquer coisa relacionada ao tema... com base em algumas pesquisas consegui levantar os seguintes links:

 

Bom, quando se fala em API hoje em dia acho que SOAP não pode ficar de fora. De uma olhada nesse webservice:

 

http://aws.amazon.com/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me surgiu uma duvida... alguem sabe me dizer se uma API se enquadra no conceito de SAAS? (software as a service)

 

Não, não enquadra. SAAS está relacionado à licensa de uso do software e não a programação da aplicação.

O Gmail por exemplo usa SAAS, isso significa que você é o dono dos seus emails, contatos, etc. mas não é o dono do software. Se em algum momento você chegar a usar os 7Gib de espaço você terá que adquirir uma outra licensa de uso.

Uma API não está relacionada ao modelo de comercialização ou direito de uso de um software e sim ao desenvolvimento propriamente dito, por exemplo:

 

1. Você desenvolveu um aparelho novo e precisa que softwares possam comunicar com seu aparelho, ai você disponibiliza sua API.

2. Você desenvolveu uma aplicação de armazenamento online e quer permitir que qualquer linguagem possa enviar e receber os dados de dua aplicação, ai você disponibiliza sua API.

 

API nada mais é que uma interface (falando em orientação à objetos) para acessar sua aplicação, imagine que você tenha um serviço que irá dizer ola para um usuário qualquer:

 

class Teste {
    /**
     * Diz olá ao nome especificado
     * @param string $nome O nome
     * @return string
     */
    public function ola( $nome ){
        return( sprintf( "Olá %s" , $nome ) );
    }
}

Se você usar o método ola da classe Teste você terá o seguinte resultado:

 

$teste = new Teste();
echo $teste->ola( "Neto" ); //Olá Neto

Agora você precisa disponibilizar essa classe na forma de API, para que qualquer um possa usar o método ola, mesmo se estiver usando outra linguagem (Java por exemplo) ou que esteja em um outro servidor.

 

Teste.wsdl => essa é a API da classe Teste

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
    name="Teste"
    xmlns:neto="urn:neto"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    targetNamespace="urn:neto">
    
    <wsdl:message name="olaRequest">
        <wsdl:part name="nome" type="xsd:string" />
    </wsdl:message>
    
    <wsdl:message name="olaResponse">
        <wsdl:part name="olaReturn" type="xsd:string" />
    </wsdl:message>
    
    <wsdl:portType name="Teste">
        <wsdl:operation name="ola">
            <wsdl:input message="neto:olaRequest" />
            <wsdl:output message="neto:olaResponse" />
        </wsdl:operation>
    </wsdl:portType>
    
    <wsdl:binding name="TesteSOAP" type="neto:Teste">
        <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
        
        <wsdl:operation name="ola">
            <soap:operation soapAction="urn:neto/ola" />
            <wsdl:input>
                <soap:body namespace="urn:neto" use="literal" />
            </wsdl:input>
            <wsdl:output>
                <soap:body namespace="urn:neto" use="literal" />
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    
    <wsdl:service name="Teste">
        <wsdl:port binding="neto:TesteSOAP" name="TesteSOAP">
            <soap:address location="http://localhost/Teste.php" />
        </wsdl:port>
    </wsdl:service>
    
</wsdl:definitions>

Vamos criar agora o serviço que receberá os pedidos de ola:

 

Teste.php => Esse é a aplicação que disponibilizou a API

class Teste {
    /**
     * Diz olá ao nome especificado
     * @param string $nome O nome
     * @return string
     */
    public function ola( $nome ){
        return( sprintf( "Olá %s" , $nome ) );
    }
}

$server = new SOAPServer( "Teste.wsdl" );
$server->setClass( "Teste" );
$server->handle();

Pronto, agora que você tem a classe e a API, qualquer um pode usar seu método ola, de qualquer plataforma, linguagem, ferramenta ou até mesmo de um forno microondas.

 

Testando com o próprio PHP:

 

cliente.php => Esse é o cliente que usa a API, pode ser feito em qualquer linguagem ou plataforma que mesmo o serviço estando em PHP irá receber o nome e retornar exatamente o que precisa.

$cliente = new SoapClient(
    "http://localhost/Teste.wsdl",
    array(
        'trace'            => 1,
        'exceptions'    => 1,
        "style"            => SOAP_RPC,
        "use"            => SOAP_LITERAL,
        "soap_version"    => SOAP_1_1,
        'encoding'        => 'UTF-8'
    )
);

$ret = $cliente->ola( "Neto" );

echo $ret; //Olá Neto

Resumindo, API é uma interface para sua aplicação e SAAS é uma forma de licenciar sua aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Muito boa sua explicação, entendi perfeitamente, obrigado.

 

 

Agora mudando um pouco o foco, no ponto de vista do desenvolvedor da API, qual as vantagens de tornar o acesso de suas classes publicas? (falo pelos open sources ex: google maps, picnik entre outros...)

 

publicidade?

divulgação do serviço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que é a possiblidade de integração e uma ajuda a comunidade desenvolvedora mesmo, é como se fosse um avanço a cada código open-source... é bem legal desenvolver APIs, pelo menos eu acho hehe, envolve muitos problemas novos e você tem que achar uma saída p/ eles de uma forma eficaz que não prejudique o seu código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora mudando um pouco o foco, no ponto de vista do desenvolvedor da API, qual as vantagens de tornar o acesso de suas classes publicas? (falo pelos open sources ex: google maps, picnik entre outros...)

 

publicidade?

divulgação do serviço?

 

Depende,

 

Se você desenvolveu um novo hardware, a melhor forma de se fazer esse novo hardware popularizar é disponibilizar a API, assim, vários desenvolvedores poderão desenvolver aplicações para comunicar com seu hardware e consequentemente você vende mais.

 

Se você desenvolveu um DSS (Data Storage Service), o que importa para você é que os desenvolvedores consigam, independente da linguagem ou plataforma usar seu serviço de armazenamento de dados porque você ganha é com o volume de dados e não com a API.

 

Então, a única resposta para a sua pergunta é realmente depende. Depende do que sua aplicação faz, qual o seu produto, qual o seu modelo de negócio, enfim, depende.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

João Batista Neto, muito boa sua explicação.

Até marquei um ponto para ela... rs

 

Assim, falando de API para leigos você poderia utilizar a API do momento: Twitter!

A cada dia novos e novos sites/aplicativos móveis ou web/plugins/etc surgem utilizando uma simples API.. e são muito usados.

Como é a "mídia do momento", na minha opinião você poderia usá-la.

 

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.