Histórico da Página
...
- Infraestrutura: Um container web independente de plataforma. Neste caso podemos considerar:
Observação: Os servidores web citados são exemplos dos containers, sendo possível utilizar outros servidores web.
Em relação a segurança de contexto da aplicação, cada aplicação deverá ser responsável pela sua implementação devido a diversidade de plataformas e diferença entre os padrões de cada produto. Serviços: Cada produto deverá prover os
serviçosserviços para IDE e para a aplicação a ser construida; Para correto funcionamento da IDE cada produto deverá prover o seguinte serviço:
getAvailableServices: Este serviço deverá estar disposto como REST utilizando o protocolo GET e retornar um JSON contendo um lista de serviços disponiveis. O path para acesso ao serviço deverá ser: <url do serviço rest>/getAvailableServices
Parâmetros:
Entrada - name: nome do serviço para ser utilizado como filtro, default é uma String em branco.
Entrada - start: indica quando registros já estão disponíveis em tela, default é 0.
Entrada - limit: indica a quantidade de registros a serem retornados a partir do indicado de inicio (start), default é 100.
Saida - uma lista de serviços disponíveis, está lista deve ser composta por:
id: identificador do serviço;
name: nome do serviço, por convenção deve ser utilizado o nome do contexto em qual o serviço se encontra;
description: descrição do serviço;
descriptor: URL contendo o descritos WADL ou WSDL do serviço em questão;
type: tipo de serviço: REST ou SOAP
Exemplo:
Bloco de código language java title Exemplo firstline 1 linenumbers true collapse true URL do Serviço: http://localhost:8380/html-service/rest/framework/getAvailableServices Assinatura do método getAvailableServices: @GET @Path("/getAvailableServices") @Produces(MediaType.APPLICATION_JSON) public List<AvailableServices> getAvailableServices( @QueryParam("name") @DefaultValue("") String name, @QueryParam("start") @DefaultValue("0") int start, @QueryParam("limit") @DefaultValue("100") int limit) throws Exception; Assinatura do AvailableServices: @XmlRootElement(name = "AvailableServices") @XmlAccessorType(XmlAccessType.FIELD) public class AvailableServices implements Serializable { @XmlElement(name = "id") private Long id; @XmlElement(name = "name") private String name; @XmlElement(name = "description") private String description; @XmlElement(name = "descriptor") private String descriptor; @XmlElement(name = "type") private String type = "REST"; // ou SOAP } JSON gerado como retorno do método getAvailableServices: [{ "id":1, "name":"html-app", "description":"Serviços de gerenciamento da aplicação de referência html-app.", "descriptor":"/html-app/rest/application.wadl", "type":"REST" }, { "id":2, "name":"html-sample", "description":"Serviços da aplicação de referência html-sample.", "descriptor":"/html-sample/rest/application.wadl", "type":"REST" }]
O WADL é a documentação padrão para os serviços REST assim como o WSDL está para os serviços SOAP. A especificação do WADL está disponível em: http://www.w3.org/Submission/wadl/
Compatibilidade com Browsers
...