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...