I followed this tutorial, http://www.wadewegner.com/2013/03/creating-anonymous-rest-apis-with-salesforce-com/ , to create a public rest service in a developer sandbox. If I run any of the following:
curl GET http://sitedomainname.cs1.force.com/services/apexrest/Widgets/
curl POST http://sitedomainname.cs1.force.com/services/apexrest/Widgets/
curl PUT http://sitedomainname.cs1.force.com/services/apexrest/Widgets/
curl DELETE http://sitedomainname.cs1.force.com/services/apexrest/Widgets/
I get an HTTP 301 response.
But strangely, if I run that URL through POSTMAN, any request calls my GET method. And if I run it through SOAP UI, it calls my POST and GET methods correctly.
Finally, if I call the same url, but HTTPS, I get a HTTP 503 error.
Here is my class:
@RestResource(urlMapping='/Widgets/*')
global class WidgetController {
@HttpGet
global static String getWidgets() {
return 'GET';
}
@HttpPost
global static String createNewWidget() {
return 'POST';
}
@HttpDelete
global static String deleteWidgetById() {
return 'DELETE';
}
@HttpPut
global static String updateWidget() {
return 'PUT';
}
}
I should also add that all of these methods work correctly when authenticated through workbench.
I have tried this in other sandboxes/editions and I have varying results. Are there any limitations with using this method? Like does it only work in Production and Developer editions?