Novidade super interessante do ColdFusion 2021 update 1

22 views
Skip to first unread message

Christian Figueiredo

unread,
Jun 4, 2021, 11:48:11 AM6/4/21
to ColdFusion Brasil
Como vão CFers?

Encontrei uma novidade que vai abalar os desenvolvedores de REST.

Na última atualização do CF2018 (atualização 11) várias coisas que funcionavam perfeitamente começaram da pipocar e vários erros começaram a aparecer do nada.


1) cfinvoke no CFScript

A tag <cfinvoke> foi adaptada ao <cfscript> para o comando cfinvoke('path.to.component','function_name','scope.result_variable'){
    invokeArgument(name,value);
    ...
}

Na atualização 11, é preciso chamar o <cfinvoke> usando a função invoke:
scope['result_variable']=invoke(createObject('component','path.to.component'),'function_name',argumentCollection);


2) Não é mais preciso usar GetHTTPRequestData()['content'] para receber dados do body durante uma chamada REST

Essa me surpreendeu! Eu estava lendo a documentação da tag <cfargument> para o ColdFusion 2021 e dei de cara com uma informação referente ao restArgSource: ao criar um argument, se você não especificar seu nome no restArgName, nem a sua chamada no restArgSource, esse argument estará pronto para receber dados do body!


3) A atualização 1 do ColdFusion 2021 tem correções referentes à chamada REST que antes davam erro no ColdFusion 2018.

No ColdFusion 2018, eu não conseguia enviar dados do body com parâmetros do form em uma chamada POST. Vira-e-mexe apresentava um erro dizendo que "não é possível enviar sequer parâmetro do form combinado com conteúdo do body caso o Content-Type enctype seja x-www-form-urlencoded". Tentei ajustar a função POST com a propriedade consumes='application/json' da função, mas nada adiantava. Tentei incluir o cfhttpparam type="header" com a propriedade Content-Type=x-www-form-urlencoded, só erro 500.
Desisti e resolvi testar o mesmo código no ColdFusion 2021. Funcionou perfeitamente!

Aos poucos estou entendendo a ânsia da Adobe em lançar o ColdFusion 2021. O mais engraçado é que o CF2021 está seguindo as tendências do Lucce, em vez do contrário...
Reply all
Reply to author
Forward
0 new messages