22 de mai. de 2009

ServicesManager.as - Apontando Endpoints em diferentes ambientes

Quando desenvolvemos um projeto, deveriamos ter vários ambientes, podendo ser o de desenvolvimento, teste, homologação e finalmente produção. Isto gera um desconforto em relação aos endpoints.
Para resolver o problema, criei uma classe "ServicesManager.as", bem simples, mas funcional, podendo ser melhorada, e com isso, configurar esses endpoints através de um xml "ConfigServices.xml".

Para sua utilização seguimos os passos:

1-Em nossa aplicação, adicionamos o serviço apontando para o ConfigServices.xml;

    < mx:httpservice id="configServices" url="ConfigServices.xml">
             result="{setServices(event)}" resultFormat="xml"/>

2-No evento, da aplicação, creationComplete="{init();}" executamos a chamada para o serviço;

    private function init():void 
    {
        configServices.send();
    }

3- Tratamos então o result em setServices(event):

    private function setServices(event:ResultEvent):void
    {
        var servicesManager:ServicesManager = new ServicesManager();
        servicesManager.xml = XML(event.result);

        //Para cada serviço em nossa aplicação, fazemos uma chamada 
        //Por exemplo:
        srvPHP.channelSet = servicesManager.channelSet;
        servicesManager.destinationSet(srvPHP);

        srv.channelSet = servicesManager.channelSet;
        servicesManager.destinationSet(srv);

4- Agora é só manter uma copia de ConfigServices.xml em cada servidor, configurado conforme os respectivos endpoints, configurados no services-config.xml de cada ambiente.

Faça o download e importe o projeto no Flex Builder 



Nenhum comentário:

Postar um comentário