Debugging is hard
Usually, debugging an endpoint goes a little like this:
1. Add some debug code to your REST endpoint
2. Go to your website
3. Fill out a form (or whatever)
4. Submit the form
5. Open the Chrome Inspector
6. Look at the response from the endpoint
That’s too many steps!
If we only working on the back-end endpoint, we can simplify our debugging by sending the same request over and over using cURL on the command-line.
Grab your request data
The first step is to get a data payload and save it to a file so you can send it to your endpoint. (We’re assuming you’re sending and receiving JSON.)
You can craft one by hand if your endpoint is simple enough, but that’s usually not the case. Most of the time, it’s easier to grab the data from a browser request.
Chrome makes this super easy.
1. Open the Developer Tools and click on the Network tab
2. Click on your request in the list of network requests.
3. Click on the Headers tab and scroll down to “Request Payload” and click “View Source”
4. That will show you the raw JSON of your request which you can copy & paste into a file.
Make ALL THE REQUESTS
Once you have you JSON in a file (let’s say it’s called file.json), making the request is easy.
curl -X POST -d @file.json -H 'Content-Type: application/json' "http://myhost.com/wp-json/restendpoint"
Now you can easily make the same request over and over while you work on the endpoint. Plus you can put all kinds of debugging printouts in the endpoint and you can see the output.