Hitting directly at http://local.intranet-api/paag/address results in
Error Type: SES.405 : 405
Error Messages: Invalid HTTP method: GET
Posting with POSTMAN in chrome works. I get my expected json results.
Posting with Relaxer works. I get my expected json results.
In my Module Config I have the following routes defined:
routes = [ // root/default { pattern="/", handler="readmeHandler", action="index" }, // geocode new address { pattern="/address", handler="geocoderHandler", action={ POST="new" } }, // get geocode totals { pattern="/geocode/totals", handler="geocoderHandler", action={ GET="totals" } }, // Convention Route { pattern="/:handler/:action?"} ];
My handler:
`
function new(event,rc,prc){
prc.results.data = paagGeocoder.geocodeSingleAddress(rc);
}
`
My base handler:
`
component {
public void function preHandler(event,rc,prc){
prc.results = {};
prc.results[“status”] = “OK”;
prc.results[“data”] = {};
prc.results[“message”] = “”;
event.paramValue(“format”,“json”);
}
public void function postHandler(event,rc,prc){
renderResults(event,prc.results);
}
// Any process level error that inheriting handlers do not catch will be caught
// by this onError.
public any function onError(event,faultAction,exception,eventArguments){
prc.results.status = “FAIL”;
prc.results.message = ARGUMENTS.exception.message;
prc.results.data = ARGUMENTS.exception.tagContext;
// TODO: log error here
// Use LogBox Appenders, ie: db, trace, email
// pass the results
renderResults(ARGUMENTS.event, prc.results);
}
private any function renderResults(event,results){
// return if PROXY
if( ARGUMENTS.event.isProxyRequest() ){
return ARGUMENTS[“results”];
}
// NOTE: Config/Routes.cfm has extensions settings turned on
// if a detected extension is not part of the allowed extensions
// then coldbox will thrown an invalid event error, this is when
// onError kicks in.
switch( event.getValue(‘format’) ) {
case “jsonp”:
if(event.valueExists( name=“callback”, private=false )){
event.renderData( data=ARGUMENTS[“results”], type=“jsonp”, jsoncallback=event.getValue(‘callback’) );
}else{
var errorStruct = {status=“FAIL”, message=“MISSING_CALLBACK”};
event.renderData( data=errorStruct, type=“jsonp”, jsoncallback=“fail” );
}
break;
default:
event.renderData( data=ARGUMENTS[“results”], type=event.getValue(‘format’) );
break;
}
}
}
`