This section provides a quick overview of HTTP concepts for PeopleSoft developers who may not work with HTTP and REST APIs daily. If you are already comfortable with HTTP requests, responses, status codes, and headers, feel free to skip ahead. This is meant as a level-set before diving into Integration Broker specifics.
HTTP (HyperText Transfer Protocol) is a text-based request and response protocol between clients and servers.
In the PeopleSoft world:
An HTTP request has four main parts:
The HTTP method tells the server what action you want to perform.
| Method | Purpose | Has Body? | Common Usage |
|---|---|---|---|
| GET | Retrieve data | No | ~85% of API calls |
| POST | Create a resource or send data | Yes | ~10% of API calls |
| PUT | Replace/update a resource | Yes | Less common |
| PATCH | Partially update a resource | Yes | Less common |
| DELETE | Remove a resource | No | Less common |
GET and POST account for the vast majority of PeopleSoft integration work. You will seldom use PUT and PATCH.
A URL identifies the resource you are interacting with. Here is the anatomy of a URL:
https://api.example.com:443/v2/employees?status=active&limit=10
\___/ \______________/\__/\___________/ \____________________/
scheme host port path query string
http or https (always use https for APIs)/employees/12345? and uses & to separate pairsHeaders pass metadata about the request. Think of them as configuration for the HTTP transaction.
Common request headers you will encounter:
| Header | Purpose | Example |
|---|---|---|
Content-Type |
Format of the request body | application/json, application/xml |
Accept |
Format you want the response in | application/json |
Authorization |
Authentication credentials | Basic dXNlcjpwYXNz, Bearer <token> |
The request body carries data you are sending to the server. Only POST, PUT, and PATCH requests typically have a body. The body can be JSON, XML, form data, or other formats.
GET https://api.example.com/employees/12345
Accept: application/json
Authorization: Basic dXNlcjpwYXNz
There is no body. The URL path (/employees/12345) identifies which employee to retrieve.
POST https://api.example.com/employees
Content-Type: application/json
Accept: application/json
Authorization: Basic dXNlcjpwYXNz
{
"name": "Jane Smith",
"email": "jane.smith@example.com",
"department": "HR"
}
The body contains the data for the new employee being created.
DELETE https://api.example.com/employees/12345
Authorization: Basic dXNlcjpwYXNz
The server sends back a response with three parts:
The status code tells you the outcome. They are grouped by family:
| Range | Category | Meaning |
|---|---|---|
| 2xx | Success | The request worked |
| 3xx | Redirect | The resource moved |
| 4xx | Client Error | Something is wrong with your request |
| 5xx | Server Error | The server had a problem |
Common status codes you will encounter in PeopleSoft integrations:
| Code | Name | What It Means |
|---|---|---|
200 |
OK | Request succeeded, response body has data |
201 |
Created | Resource was created (common response to POST) |
204 |
No Content | Success, but no response body (common for DELETE) |
400 |
Bad Request | Your request is malformed or has invalid data |
401 |
Unauthorized | Missing or invalid authentication credentials |
403 |
Forbidden | Authenticated but not authorized for this resource |
404 |
Not Found | The resource does not exist (sometimes this is not an error, e.g., checking if a record exists) |
405 |
Method Not Allowed | The endpoint does not support the HTTP method you used |
408 |
Request Timeout | The server timed out waiting; can sometimes be retried |
429 |
Too Many Requests | Rate limit exceeded; wait and retry |
500 |
Internal Server Error | The server crashed or had an unhandled error |
404 when checking if a user exists in a third-party system may be a normal part of your “create if not found” workflow. Design your response handling accordingly.Response headers carry metadata about the response. Some useful ones:
| Header | Purpose |
|---|---|
Content-Type |
Format of the response body |
X-Rate-Limit-Remaining |
How many API calls you have left |
X-Rate-Limit-Reset |
When your rate limit resets |
X-Request-ID |
Unique ID for the request (useful for support tickets) |
Location |
URL of a newly created resource (after a 201) |
The response body contains the data you requested. Most modern APIs return JSON, though some still use XML.
Example JSON response:
{
"id": "12345",
"name": "Jane Smith",
"email": "jane.smith@example.com",
"department": "HR",
"active": true
}
Most APIs require authentication. The two most common patterns you will encounter with PeopleSoft integrations:
Basic Auth sends a username and password encoded in Base64:
snoopy:i-fly-planesc25vb3B5OmktZmx5LXBsYW5lcw==Authorization: Basic c25vb3B5OmktZmx5LXBsYW5lcw==Many modern APIs use token-based authentication:
Authorization: Bearer eyJhbGciOiJSUzI1NiIs...JSON (JavaScript Object Notation) is the dominant data format for modern APIs. It uses key-value pairs and is easy to read:
{
"name": "Jane Smith",
"age": 30,
"active": true,
"roles": ["admin", "user"],
"address": {
"city": "San Diego",
"state": "CA"
}
}
XML is older and more verbose. You will still encounter it with some PeopleSoft integrations and SOAP services:
<?xml version="1.0"?>
<employee>
<name>Jane Smith</name>
<age>30</age>
<active>true</active>
<roles>
<role>admin</role>
<role>user</role>
</roles>
</employee>
In practice, HTTP requests between PeopleSoft and an external API go through several layers:
Each of these layers can introduce issues: DNS resolution, firewall rules, TLS certificate problems, and timeouts. See the HttpTargetConnector section for troubleshooting details.
The best way to learn HTTP is to make some requests. Here are some safe, public APIs you can test against using HTTPYac, curl, or Postman:
### Simple GET - returns your IP info as JSON
GET https://httpbin.org/get
Accept: application/json
### POST with JSON body - echoes back what you sent
POST https://httpbin.org/anything
Content-Type: application/json
{"message": "hello world"}
### Force a specific status code
GET https://httpbin.org/status/404
### Basic Auth test (user: user, password: passwd)
GET https://httpbin.org/basic-auth/user/passwd
Authorization: Basic dXNlcjpwYXNzd2Q=
These examples use httpbin.org, a free service that echoes back your requests. It is a great way to experiment with different HTTP methods, headers, and status codes without touching any real system.
Chris Malek s a PeopleTools® Technical Consultant with over two decades of experience working on PeopleSoft enterprise software projects. He is available for consulting engagements.
Work with Chris