Bird
Raised Fist0
Rest APIprogramming~5 mins

Request body structure in Rest API

Choose your learning style10 modes available
Introduction

The request body holds the data you send to a server when you want to create or update something. It helps the server understand what you want to do.

When submitting a form with user information like name and email.
When uploading a file or image to a website.
When sending data to create a new record in a database.
When updating details of an existing item on a server.
When sending complex data like JSON to an API.
Syntax
Rest API
POST /api/resource HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "key1": "value1",
  "key2": "value2"
}

The request body comes after the headers, separated by a blank line.

Content-Type header tells the server the format of the data sent (like JSON).

Examples
A simple JSON body with username and password fields.
Rest API
{
  "username": "johndoe",
  "password": "12345"
}
JSON body with different data types: string, number, and boolean.
Rest API
{
  "product": "Book",
  "price": 9.99,
  "inStock": true
}
HTML form sends data as request body in a POST request (usually as form data).
Rest API
<form action="/submit" method="POST">
  <input name="name" value="Alice" />
  <input name="age" value="30" />
</form>
Sample Program

This Python program sends a POST request with a JSON body to a test API. It prints the status code and the response data from the server.

Rest API
import requests

url = "https://jsonplaceholder.typicode.com/posts"

# Data to send in the request body
body = {
    "title": "foo",
    "body": "bar",
    "userId": 1
}

# Send POST request with JSON body
response = requests.post(url, json=body)

# Print response status and returned data
print(f"Status code: {response.status_code}")
print("Response body:")
print(response.json())
OutputSuccess
Important Notes

Always set the correct Content-Type header to match your request body format.

Request body is usually used with POST, PUT, or PATCH HTTP methods.

GET requests typically do not have a request body.

Summary

The request body carries data sent to the server in POST or PUT requests.

It must be formatted correctly, often as JSON or form data.

Setting the right Content-Type header helps the server understand your data.

Practice

(1/5)
1. What is the main purpose of the request body in a REST API POST request?
easy
A. To define the HTTP method used
B. To send data from the client to the server
C. To specify the URL of the API endpoint
D. To set the server response status code

Solution

  1. Step 1: Understand the role of request body

    The request body contains the data sent by the client to the server, usually in POST or PUT requests.
  2. Step 2: Differentiate from other parts of the request

    The URL specifies the endpoint, the method defines the action, and the status code is part of the response, not the request body.
  3. Final Answer:

    To send data from the client to the server -> Option B
  4. Quick Check:

    Request body = data sent to server [OK]
Hint: Request body carries data sent to server in POST/PUT [OK]
Common Mistakes:
  • Confusing request body with URL or headers
  • Thinking request body sets HTTP method
  • Mixing request body with response status
2. Which of the following is the correct way to indicate JSON data in the request body header?
easy
A. Content-Type: text/plain
B. Content-Type: application/xml
C. Content-Type: application/json
D. Content-Type: multipart/form-data

Solution

  1. Step 1: Identify the header for JSON data

    The header Content-Type: application/json tells the server the body contains JSON formatted data.
  2. Step 2: Compare with other content types

    text/plain is plain text, multipart/form-data is for file uploads, and application/xml is for XML data.
  3. Final Answer:

    Content-Type: application/json -> Option C
  4. Quick Check:

    JSON header = application/json [OK]
Hint: Use application/json for JSON request bodies [OK]
Common Mistakes:
  • Using text/plain for JSON data
  • Forgetting to set Content-Type header
  • Using multipart/form-data without files
3. Given this JSON request body sent to an API:
{
  "name": "Alice",
  "age": 30
}

What will the server receive as the value of age?
medium
A. Undefined
B. "30" (string)
C. null
D. 30 (number)

Solution

  1. Step 1: Analyze the JSON data types

    The value for age is written as 30 without quotes, so it is a number, not a string.
  2. Step 2: Understand server parsing

    The server parses JSON and keeps numbers as numbers, so age will be the number 30.
  3. Final Answer:

    30 (number) -> Option D
  4. Quick Check:

    Unquoted numbers in JSON = number type [OK]
Hint: Numbers in JSON have no quotes, so parsed as numbers [OK]
Common Mistakes:
  • Assuming all JSON values are strings
  • Confusing number and string types
  • Ignoring JSON parsing rules
4. You send this request body:
{
  "username": "bob",
  "password": "1234"
}

But the server returns a 400 Bad Request error. What is a likely cause?
medium
A. Missing Content-Type header or wrong format
B. The username is too short
C. The password is numeric
D. The request method is GET

Solution

  1. Step 1: Check request headers and format

    A 400 Bad Request often means the server cannot parse the body, commonly due to missing or incorrect Content-Type header.
  2. Step 2: Evaluate other options

    Username length or password content usually cause validation errors, not 400 errors. GET requests do not have bodies, but the question implies a body was sent.
  3. Final Answer:

    Missing Content-Type header or wrong format -> Option A
  4. Quick Check:

    400 error often = bad or missing Content-Type [OK]
Hint: Always set correct Content-Type header to avoid 400 errors [OK]
Common Mistakes:
  • Ignoring Content-Type header
  • Assuming 400 means validation error
  • Confusing GET with POST request body
5. You want to send a nested JSON object in the request body to create a user with address info:
{
  "name": "Eve",
  "address": {
    "street": "123 Main St",
    "city": "Townsville"
  }
}

Which Content-Type header and body format should you use to ensure the server correctly understands this nested data?
hard
A. Content-Type: application/json with the JSON body as shown
B. Content-Type: text/plain with JSON body as string
C. Content-Type: application/x-www-form-urlencoded with nested keys
D. Content-Type: multipart/form-data with JSON inside a file

Solution

  1. Step 1: Identify correct header for nested JSON

    Nested JSON requires application/json Content-Type so the server parses the structure correctly.
  2. Step 2: Evaluate other formats

    text/plain treats body as plain text, application/x-www-form-urlencoded does not support nested objects well, and multipart/form-data is for files, not nested JSON.
  3. Final Answer:

    Content-Type: application/json with the JSON body as shown -> Option A
  4. Quick Check:

    Nested JSON needs application/json header [OK]
Hint: Use application/json header for nested JSON objects [OK]
Common Mistakes:
  • Using form-urlencoded for nested JSON
  • Sending JSON as plain text without header
  • Uploading JSON as file instead of body
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard