Ola gujeiros, estou com uma dúvida sobre oque seria um webservice, sei que webservices são usados para trocas de mensagens entre sistemas e isso favorece a integração de sistemas.
Minha dúvida e a seguinte eu criei um pequeno projeto da faculdade(um projeto de uma livraria), nesse projeto tenho uma servlet mapeada assim ("/cadastraLivroServlet"), eu consigo acessar essa servilet na minha aplicação através de uma chamada ajax normal assim:
$.post('cadasLivroServlet');
a pergunta é, essa minha servlet é um webService ? se não oque seria um webservices, caso eu faça um deploy nda minha aplicação num ambiente real outro programa poderia acessar minha servlet por ajax?
sua servlet é uma forma de, dado um request http, vc sabe interpretar isso e fazer alguma coisa
um webservice é uma formalização de algumas ações, onde vc estabelece um contrato ( entidade livro vc pode: criar, listar, pesquisar, apagar atraves do enpoint /livro e com os parametros tais ) e a sua servlet vai executar isso. vc tem tecnologias para isso como SOAP e REST.
se vc renderiza um html isso nao é um web-service, isso é apenas uma pagina dinamica. um webservice não serve para um ser humano manusear diretamente e sim para integração entre dois sistemas ( e nesse seu exemplo vc tem uma aplicação javascript, ainda que simples, rodando no cliente - no caso o browser ).
outros programas podem acessar a sua servlet por ajax? depende. se vc não colocar nenhuma camada de autenticação ou segurança qq coisa vai poder usar esse seu serviço ( o que inclui um robo por exemplo ).
EDIT: chamadas ajax são limitadas ao seu dominio. assim o camarada não pode via ajax acessar uma API em outro dominio ( vc tem tecnicas pra contornar isso, como carregar via tag script e o uso de iframes ).
quando vc adiciona um video do youtube ou um google maps em uma pagina, vc tem um codigo javascript que esta acessando outros web-services. para vc ter uma ideia, use o google chrome e nas “development tools” veja a aba “network”, vai ver as trocas de mensagens.
vc deve se preocupar com isso? se a sua aplicação for rodar numa intranet vc teoricamente esta seguro. se vc for rodar na internet ( exposto para o mundo ) eu pensaria em autenticação, https e outras medidas de segurança
Um webservice é um conjunto de funcionalidades abstratas independente de tecnologia. Você pode implementar o conjunto de funcionalidades de um web service em outras linguagens de programação, sem servlet por exemplo, e o web service continua o mesmo. Portanto seu servlet não é um webservice, apenas uma forma de criar um endpoint de comunicação em java.
E como já foi dito, existem dois tipos de webservice. Os compatíveis com REST, e os que não são compatíveis.