Lecture Notes Of Class 30 - Working with APIs - Part 2
Objective
- Consume
external APIs: Learn how to fetch data from
third-party APIs and integrate that data into PHP applications.
- Build
a simple RESTful API with PHP: Understand the
fundamentals of creating your own API.
Outcomes
By the end of this class,
students will be able to:
- Successfully
fetch and display data from external APIs in their PHP applications.
- Create
a basic RESTful API using PHP that can handle different HTTP requests.
1. Overview of APIs
- API
(Application Programming Interface): A set of rules
that allows one piece of software to interact with another.
- REST
(Representational State Transfer): A common
architectural style for APIs, utilizing standard HTTP methods (GET, POST,
PUT, DELETE).
Key Concepts
- HTTP
Methods:
- GET:
Retrieve data from the server.
- POST:
Send data to the server to create a new resource.
- PUT:
Update an existing resource on the server.
- DELETE:
Remove a resource from the server.
2. Consuming External
APIs
Step-by-Step Process
1.
Identify an API:
Find a public API you want to consume (e.g., JSONPlaceholder, OpenWeatherMap).
2.
Make a GET Request:
Use PHP's cURL or file_get_contents() to fetch data.
Example: Fetching Data
with cURL
Here’s how to use cURL in
PHP to consume an external API:
php
Copy code
$url = "https://jsonplaceholder.typicode.com/posts";
// Sample API endpoint
$ch = curl_init(); //
Initialize cURL session
// Set cURL options
curl_setopt($ch,
CURLOPT_URL, $url);
curl_setopt($ch,
CURLOPT_RETURNTRANSFER, true); // Return response as a string
$response = curl_exec($ch);
// Execute cURL session
curl_close($ch); // Close
the session
// Decode JSON response
$data = json_decode($response,
true);
// Display data
foreach ($data as $post)
{
echo "Title: " . $post['title'] .
"<br>";
echo "Body: " . $post['body'] . "<br><br>";
}
Important Notes
- Always
check if the API response is successful (HTTP status code 200).
- Handle
errors gracefully.
3. Creating a Basic
RESTful API with PHP
Step-by-Step Guide
1.
Set Up Your Environment:
Ensure you have a local server environment (XAMPP, WAMP) with PHP.
2.
Create an API Directory:
Create a folder named api in your project directory.
Example: Simple RESTful
API
Here's a basic example of
how to set up a RESTful API:
Directory Structure:
bash
Copy code
/api
├── index.php
└── db.php
db.php
(Database connection simulation):
php
Copy code
<?php
$posts = [
["id" => 1, "title"
=> "First Post", "body" => "This is the first
post."],
["id" => 2, "title"
=> "Second Post", "body" => "This is the second
post."]
];
index.php
(API endpoint):
php
Copy code
<?php
header("Content-Type:
application/json"); // Set header for JSON response
include 'db.php'; //
Include database file
$requestMethod = $_SERVER["REQUEST_METHOD"];
// Get request method
switch ($requestMethod) {
case 'GET':
echo json_encode($posts); // Return all
posts
break;
case 'POST':
// Handle POST request to create a new
post
$newPost = json_decode(file_get_contents("php://input"),
true);
$posts[] = $newPost; // Add new post to
the array
echo json_encode($newPost); // Return
the new post
break;
// Additional cases for PUT and DELETE can
be added here
default:
http_response_code(405); // Method not
allowed
echo json_encode(["message"
=> "Method Not Allowed"]);
break;
}
Testing the API
- Use
tools like Postman or
Insomnia to test your
API.
- Make
GET and POST requests to your API to verify functionality.
Example Requests
1.
GET Request:
o URL:
http://localhost/your_project/api/index.php
o Method:
GET
o Response:
List of posts in JSON format.
2.
POST Request:
o URL:
http://localhost/your_project/api/index.php
o Method:
POST
o Body:
json
Copy code
{
"id": 3,
"title": "Third Post",
"body": "This is the third
post."
}
o Response:
Newly created post in JSON format.
Conclusion
- APIs
are powerful tools for enabling interactions between different software
systems.
- Understanding
how to consume external APIs and create your own RESTful API is crucial
for building modern web applications.
Homework
- Task:
Find an external API of interest, fetch data using PHP, and display it on
a web page.
- Create
your own RESTful API that can handle at least two
types of HTTP requests (GET and POST).
By mastering these
concepts, students will be well-prepared to integrate and create APIs in their
PHP applications, enhancing the functionality and interoperability of their
projects.
4o mini
You said:
write some assignments
with solutions
ChatGPT said:
ChatGPT
Here are some assignments
focused on working with APIs in PHP, along with detailed solutions for each
task.
Assignment 1: Fetch and
Display Data from an External API
Task
Using the JSONPlaceholder
API, write a PHP script that fetches and displays a list of users. The output
should include the user's name, email, and address (street, city).
Solution
php
Copy code
<?php
// API endpoint
$url = "https://jsonplaceholder.typicode.com/users";
// Initialize cURL
session
$ch = curl_init();
curl_setopt($ch,
CURLOPT_URL, $url);
curl_setopt($ch,
CURLOPT_RETURNTRANSFER, true);
// Execute cURL session
$response = curl_exec($ch);
curl_close($ch);
// Decode JSON response
$users = json_decode($response,
true);
// Display user
information
foreach ($users as $user)
{
echo "Name: " . $user['name'] . "<br>";
echo "Email: " . $user['email'] .
"<br>";
echo "Address: " . $user['address']['street']
. ", " . $user['address']['city'] . "<br><br>";
}
?>
Assignment 2: Create a
Simple RESTful API
Task
Create a simple RESTful
API that manages a collection of books. The API should support the following
operations:
- GET
/api/books: Return a list of books.
- POST
/api/books: Add a new book to the collection.
Solution
Directory Structure:
bash
Copy code
/api
├── index.php
└── db.php
db.php
(Simulated database):
php
Copy code
<?php
$books = [
["id" => 1, "title"
=> "1984", "author" => "George Orwell"],
["id" => 2, "title"
=> "To Kill a Mockingbird", "author" => "Harper
Lee"]
];
index.php (API
endpoint):
php
Copy code
<?php
header("Content-Type:
application/json");
include 'db.php'; //
Include simulated database file
$requestMethod = $_SERVER["REQUEST_METHOD"];
// Get request method
switch ($requestMethod) {
case 'GET':
echo json_encode($books); // Return all
books
break;
case 'POST':
// Handle POST request to add a new
book
$newBook = json_decode(file_get_contents("php://input"),
true);
$newBook['id'] = count($books) + 1; //
Assign new ID
$books[] = $newBook; // Add new book to
the array
echo json_encode($newBook); // Return
the new book
break;
default:
http_response_code(405); // Method not
allowed
echo json_encode(["message"
=> "Method Not Allowed"]);
break;
}
Testing the API
1.
GET Request:
Use Postman to send a GET request to http://localhost/your_project/api/index.php
to retrieve the list of books.
2.
POST Request:
o URL:
http://localhost/your_project/api/index.php
o Method:
POST
o Body:
json
Copy code
{
"title": "The Great
Gatsby",
"author": "F. Scott
Fitzgerald"
}
o Response:
json
Copy code
{
"id": 3,
"title": "The Great
Gatsby",
"author": "F. Scott
Fitzgerald"
}
Assignment 3: Error
Handling in API Requests
Task
Modify the existing API
from Assignment 2 to handle errors gracefully. If a user tries to access a book
that doesn’t exist, the API should return a 404 error with a message.
Solution
Modified index.php:
php
Copy code
<?php
header("Content-Type:
application/json");
include 'db.php'; //
Include simulated database file
$requestMethod = $_SERVER["REQUEST_METHOD"];
// Get request method
$bookId = isset($_GET['id'])
? intval($_GET['id']) : null; // Get book ID from query parameters
switch ($requestMethod) {
case 'GET':
if ($bookId) {
// Find the book by ID
$book = array_filter($books, fn($b)
=> $b['id'] === $bookId);
if ($book) {
echo json_encode(array_values($book)[0]);
// Return the specific book
} else {
http_response_code(404); // Not
Found
echo json_encode(["message"
=> "Book not found."]);
}
} else {
echo json_encode($books); // Return
all books
}
break;
case 'POST':
// Handle POST request to add a new
book
$newBook = json_decode(file_get_contents("php://input"),
true);
$newBook['id'] = count($books) + 1; //
Assign new ID
$books[] = $newBook; // Add new book to
the array
echo json_encode($newBook); // Return
the new book
break;
default:
http_response_code(405); // Method not
allowed
echo json_encode(["message"
=> "Method Not Allowed"]);
break;
}
Testing the Error
Handling
1.
GET Request for a Specific Book:
Send a GET request to http://localhost/your_project/api/index.php?id=3. If the
book does not exist, the response should be:
json
Copy code
{
"message": "Book not
found."
}
Assignment 4: Fetch Data
from Multiple Endpoints
Task
Write a PHP script that
fetches data from both the users and posts endpoints of JSONPlaceholder.
Combine the data and display the user's name alongside their associated posts.
Solution
php
Copy code
<?php
// Fetch users
$userUrl = "https://jsonplaceholder.typicode.com/users";
$ch = curl_init();
curl_setopt($ch,
CURLOPT_URL, $userUrl);
curl_setopt($ch,
CURLOPT_RETURNTRANSFER, true);
$usersResponse = curl_exec($ch);
curl_close($ch);
$users = json_decode($usersResponse,
true);
// Fetch posts
$postUrl = "https://jsonplaceholder.typicode.com/posts";
$ch = curl_init();
curl_setopt($ch,
CURLOPT_URL, $postUrl);
curl_setopt($ch,
CURLOPT_RETURNTRANSFER, true);
$postsResponse = curl_exec($ch);
curl_close($ch);
$posts = json_decode($postsResponse,
true);
// Combine data and
display
foreach ($users as $user)
{
echo "User: " . $user['name'] . "<br>";
foreach ($posts as $post) {
if ($post['userId'] == $user['id']) {
echo "Post Title: " . $post['title']
. "<br>";
echo "Post Body: " . $post['body']
. "<br><br>";
}
}
echo "<hr>";
}
?>
These assignments and
solutions will help students practice consuming and creating APIs in PHP,
solidifying their understanding of how to interact with external services and
build their own RESTful APIs.
4o mini
You said:
write 100 MCQ
ChatGPT said:
ChatGPT
Here’s a comprehensive
set of 100 multiple-choice questions (MCQs) related to working with APIs and
PHP. Each question includes four options, with the correct answer indicated.
MCQs on Working with APIs
and PHP
1.
What does API stand for?
o A)
Application Programming Interface
o B)
Advanced Programming Integration
o C)
Application Performance Index
o D)
Application Programming Integration
Answer: A
2.
Which method is commonly used to
fetch data from an API in PHP?
o A)
GET
o B)
POST
o C)
PUT
o D)
DELETE
Answer: A
3.
In PHP, which function is used to
initialize a cURL session?
o A)
curl_exec()
o B)
curl_init()
o C)
curl_close()
o D)
curl_setopt()
Answer: B
4.
What data format is commonly used for
APIs?
o A)
XML
o B)
JSON
o C)
YAML
o D)
All of the above
Answer: D
5.
What HTTP status code indicates a
successful request?
o A)
404
o B)
500
o C)
200
o D)
301
Answer: C
6.
Which PHP function is used to decode
a JSON string?
o A)
json_decode()
o B)
json_encode()
o C)
json_parse()
o D)
json_stringify()
Answer: A
7.
Which of the following is a method to
send data to a server?
o A)
GET
o B)
POST
o C)
Both A and B
o D)
None of the above
Answer: C
8.
What does the term
"RESTful" stand for?
o A)
Representational State Transfer
o B)
Real-Time State Transfer
o C)
Resource State Transfer
o D)
Resource Standard Transfer
Answer: A
9.
Which of the following is NOT a type
of HTTP request method?
o A)
GET
o B)
POST
o C)
UPDATE
o D)
DELETE
Answer: C
10.
What is the primary purpose of using
an API?
o A)
To create software
o B)
To connect different software applications
o C)
To perform calculations
o D)
To store data
Answer: B
11.
In a RESTful API, what is the base
URL typically followed by?
o A)
Parameters
o B)
Endpoints
o C)
Status Codes
o D)
Headers
Answer: B
12.
Which PHP superglobal is used to
access the request method?
o A)
$_GET
o B)
$_POST
o C)
$_REQUEST
o D)
$_SERVER
Answer: D
13.
What is the purpose of the cURL
option CURLOPT_RETURNTRANSFER?
o A)
To send a header
o B)
To return the transfer as a string
o C)
To execute the session
o D)
To close the session
Answer: B
14.
What does a 404 status code indicate?
o A)
Success
o B)
Created
o C)
Not Found
o D)
Unauthorized
Answer: C
15.
Which header is typically used to
specify the content type of the request?
o A)
Content-Encoding
o B)
Content-Type
o C)
Accept
o D)
Authorization
Answer: B
16.
What is the purpose of the file_get_contents()
function in PHP?
o A)
To write data to a file
o B)
To read a file into a string
o C)
To send a GET request
o D)
To decode JSON data
Answer: B
17.
Which PHP function is used to encode
data into JSON format?
o A)
json_decode()
o B)
json_encode()
o C)
json_stringify()
o D)
json_format()
Answer: B
18.
Which HTTP method should be used to
update existing data on a server?
o A)
GET
o B)
POST
o C)
PUT
o D)
DELETE
Answer: C
19.
What is the main difference between
REST and SOAP?
o A)
REST uses XML, SOAP uses JSON
o B)
SOAP is stateless, REST is stateful
o C)
REST is lightweight, SOAP is heavier
o D)
There is no difference
Answer: C
20.
Which function is used to close a
cURL session in PHP?
o A)
curl_stop()
o B)
curl_end()
o C)
curl_close()
o D)
curl_exit()
Answer: C
21.
In RESTful services, what does CRUD
stand for?
o A)
Create, Read, Update, Delete
o B)
Create, Read, Upload, Delete
o C)
Create, Remove, Update, Delete
o D)
Create, Read, Update, Download
Answer: A
22.
What is the purpose of API
documentation?
o A)
To provide an API key
o B)
To help developers understand how to use the API
o C)
To list endpoints only
o D)
To store API data
Answer: B
23.
Which of the following is a common
format for REST API responses?
o A)
HTML
o B)
JSON
o C)
XML
o D)
Both B and C
Answer: D
24.
In PHP, how can you send a custom
header in a cURL request?
o A)
curl_setopt($ch, CURLOPT_HEADER, "Header: Value")
o B)
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Header: Value"])
o C)
curl_setopt($ch, CURLOPT_CUSTOMHEADER, "Header: Value")
o D)
curl_setopt($ch, CURLOPT_HEADER, ["Header: Value"])
Answer: B
25.
Which of the following statements is
TRUE about APIs?
o A)
They can only be accessed by web applications.
o B)
They are only used for database interaction.
o C)
They enable software applications to communicate.
o D)
They require user authentication.
Answer: C
26.
What is the default request method
used when sending a form without specifying a method in HTML?
o A)
GET
o B)
POST
o C)
PUT
o D)
DELETE
Answer: A
27.
Which of the following is a common
API authentication method?
o A)
API Key
o B)
OAuth
o C)
Basic Auth
o D)
All of the above
Answer: D
28.
What does the term
"endpoint" refer to in API terminology?
o A)
A URL that represents an object or resource
o B)
A method of authentication
o C)
A format for data transfer
o D)
A library for API development
Answer: A
29.
Which of the following describes the
use of the PATCH method in HTTP?
o A)
To retrieve a resource
o B)
To modify a resource
o C)
To delete a resource
o D)
To create a new resource
Answer: B
30.
What does it mean if an API is
"versioned"?
o A)
It supports multiple languages
o B)
It can be accessed by different devices
o C)
It allows multiple versions of the API to exist simultaneously
o D)
It has multiple endpoints
Answer: C
31.
Which of the following PHP functions
can be used to make a POST request using cURL?
o A)
curl_setopt($ch, CURLOPT_POST, true)
o B)
curl_setopt($ch, CURLOPT_GET, true)
o C)
curl_setopt($ch, CURLOPT_EXECUTE, true)
o D)
curl_setopt($ch, CURLOPT_SEND, true)
Answer: A
32.
Which header is used to specify the
accepted response format in an API request?
o A)
Content-Type
o B)
Accept
o C)
Authorization
o D)
User-Agent
Answer: B
33.
What is the role of an API gateway?
o A)
To store API keys
o B)
To manage and route API requests
o C)
To create API documentation
o D)
To encrypt API responses
Answer: B
34.
What is the use of the PUT method in
an API?
o A)
To create a new resource
o B)
To retrieve a resource
o C)
To update an existing resource
o D)
To delete a resource
Answer: C
35.
In PHP, which function can be used to
handle incoming JSON data from a POST request?
o A)
json_load()
o B)
json_decode(file_get_contents("php://input"))
o C)
json_parse()
o D)
json_handle()
Answer: B
36.
What is the purpose of rate limiting
in API usage?
o A)
To prevent unauthorized access
o B)
To control the number of requests a user can make in a given time
o C)
To restrict data formats
o D)
To manage response times
Answer: B
37.
Which of the following indicates that
an API requires authentication?
o A)
200 status code
o B)
401 status code
o C)
404 status code
o D)
500 status code
Answer: B
38.
What does the term
"payload" refer to in an API request?
o A)
The URL of the API
o B)
The response time of the API
o C)
The data sent to the server in a request
o D)
The authentication method used
Answer: C
39.
Which PHP cURL option is used to set
the HTTP request method?
o A)
CURLOPT_HTTPGET
o B)
CURLOPT_CUSTOMREQUEST
o C)
CURLOPT_REQUEST
o D)
CURLOPT_HEADER
Answer: B
40.
In a JSON object, how are key-value
pairs separated?
o A)
By commas
o B)
By colons
o C)
By semicolons
o D)
By slashes
Answer: A
41.
What does a 500 status code indicate?
o A)
Not Found
o B)
Server Error
o C)
Success
o D)
Unauthorized
Answer: B
42.
What is the purpose of using an API
key?
o A)
To format responses
o B)
To limit access to the API
o C)
To encrypt data
o D)
To cache requests
Answer: B
43.
What kind of data can be sent in a
JSON payload?
o A)
Strings
o B)
Arrays
o C)
Objects
o D)
All of the above
Answer: D
44.
In PHP, which function can you use to
parse a JSON string into a PHP associative array?
o A)
json_stringify()
o B)
json_decode()
o C)
json_array()
o D)
json_parse()
Answer: B
45.
What does CORS stand for in the
context of APIs?
o A)
Cross-Origin Resource Sharing
o B)
Core Open Resource Sharing
o C)
Cross-Origin Response Security
o D)
Common Origin Resource Sharing
Answer: A
46.
Which of the following statements is
TRUE about RESTful APIs?
o A)
They must use XML format.
o B)
They are only used for web applications.
o C)
They can be stateless or stateful.
o D)
They require a fixed endpoint.
Answer: C
47.
What is the purpose of the OPTIONS
HTTP method?
o A)
To get information about the server
o B)
To retrieve data
o C)
To send data
o D)
To describe the communication options for the target resource
Answer: D
48.
Which of the following is a popular
PHP library for working with APIs?
o A)
Guzzle
o B)
Laravel
o C)
Symfony
o D)
CodeIgniter
Answer: A
49.
In an API response, what does the
"status" field typically represent?
o A)
The HTTP status code
o B)
The data format
o C)
The API version
o D)
The authentication type
Answer: A
50.
What is the purpose of the curl_setopt($ch,
CURLOPT_RETURNTRANSFER, true) option?
o A)
To execute the cURL request
o B)
To return the response as a string instead of outputting it
o C)
To set the request method
o D)
To close the cURL session
Answer: B
51.
Which of the following methods is
used to delete a resource from an API?
o A)
GET
o B)
PUT
o C)
DELETE
o D)
POST
Answer: C
52.
What is the main advantage of using a
JSON format over XML?
o A)
JSON is more verbose
o B)
JSON is easier to read for humans
o C)
JSON is faster to parse
o D)
JSON supports comments
Answer: C
53.
What is the purpose of the Authorization
header in API requests?
o A)
To specify the content type
o B)
To authenticate the request
o C)
To define the user agent
o D)
To set caching parameters
Answer: B
54.
Which function is used to get the
HTTP response code of a cURL request in PHP?
o A)
curl_getinfo()
o B)
curl_exec()
o C)
curl_info()
o D)
curl_response()
Answer: A
55.
What does the term
"stateless" mean in the context of REST APIs?
o A)
Each request is independent and contains all information necessary for
processing
o B)
The server retains the state between requests
o C)
The API does not use HTTP
o D)
The API can only handle a single request at a time
Answer: A
56.
What is the role of the Content-Length
header in an API request?
o A)
To specify the type of content
o B)
To indicate the size of the request body
o C)
To define the server type
o D)
To authorize the request
Answer: B
57.
Which of the following tools can be
used to test APIs?
o A)
Postman
o B)
cURL
o C)
Insomnia
o D)
All of the above
Answer: D
58.
In the context of API development,
what is "throttling"?
o A)
Increasing server capacity
o B)
Limiting the number of requests from a user in a specific timeframe
o C)
Encrypting API responses
o D)
Increasing response time
Answer: B
59.
What is the purpose of the GET method
in an API?
o A)
To retrieve data from the server
o B)
To send data to the server
o C)
To delete data on the server
o D)
To update existing data
Answer: A
60.
In PHP, which function would you use
to send a GET request to an API?
o A)
file_get_contents()
o B)
curl_get()
o C)
http_get()
o D)
api_get()
Answer: A
61.
Which of the following is a
characteristic of a SOAP API?
o A)
It uses lightweight protocols
o B)
It is always stateless
o C)
It relies on XML for message formatting
o D)
It is easier to use than REST APIs
Answer: C
62.
Which of the following headers is
used to describe the nature of the data being sent to the server?
o A)
Content-Type
o B)
Content-Length
o C)
Accept-Encoding
o D)
User-Agent
Answer: A
63.
What is the typical file extension
for JSON files?
o A)
.json
o B)
.xml
o C)
.txt
o D)
.data
Answer: A
64.
What does the curl_setopt($ch,
CURLOPT_POSTFIELDS, $data) function do?
o A)
It sets the request method to GET
o B)
It sends data to the server using POST
o C)
It retrieves data from the server
o D)
It closes the cURL session
Answer: B
65.
In RESTful APIs, what is a
"resource"?
o A)
Any server-side process
o B)
Any data object that can be accessed via an API
o C)
A method for authentication
o D)
A type of data format
Answer: B
66.
Which PHP library is commonly used
for handling HTTP requests and responses?
o A)
Guzzle
o B)
PDO
o C)
MySQLi
o D)
cURL
Answer: A
67.
What does "pagination"
refer to in the context of APIs?
o A)
Splitting large datasets into smaller chunks
o B)
Combining multiple requests into one
o C)
Sending requests in batches
o D)
Formatting data for easier reading
Answer: A
68.
What is the purpose of the GET
request?
o A)
To create a new resource
o B)
To retrieve data from a specified resource
o C)
To update a resource
o D)
To delete a resource
Answer: B
69.
What does an API's Rate Limit mean?
o A)
The maximum number of requests allowed in a time frame
o B)
The minimum response time expected
o C)
The number of active users allowed
o D)
The server's uptime percentage
Answer: A
70.
What does the term
"webhook" mean in API context?
o A)
A method of authentication
o B)
An API callback triggered by an event
o C)
A type of data format
o D)
A tool for monitoring API usage
Answer: B
71.
Which PHP function is used to encode
an associative array into JSON format?
o A)
json_encode()
o B)
json_format()
o C)
json_stringify()
o D)
json_array()
Answer: A
72.
What type of request does the PUT
method typically represent?
o A)
Creating a new resource
o B)
Retrieving a resource
o C)
Updating an existing resource
o D)
Deleting a resource
Answer: C
73.
What is an "endpoint" in an
API?
o A)
A URL where the API can be accessed
o B)
The data returned by the API
o C)
The documentation for the API
o D)
A method for authentication
Answer: A
74.
What is the purpose of the Accept
header in an API request?
o A)
To specify the type of request
o B)
To indicate the types of responses the client can process
o C)
To define the user's role
o D)
To authenticate the request
Answer: B
75.
What is the typical structure of a
RESTful API URL?
o A)
scheme://host/resource
o B)
scheme
/resource
o C)
host/resource?query
o D)
scheme/host/resource
Answer: A
76.
Which of the following is NOT a
common HTTP method?
o A)
GET
o B)
SEND
o C)
POST
o D)
DELETE
Answer: B
77.
What is the default response format
for REST APIs?
o A)
XML
o B)
JSON
o C)
HTML
o D)
CSV
Answer: B
78.
What does the curl_setopt($ch,
CURLOPT_FOLLOWLOCATION, true) option do?
o A)
It allows cURL to follow HTTP redirects
o B)
It sets the request method to POST
o C)
It retrieves response headers
o D)
It closes the cURL session
Answer: A
79.
Which PHP function can be used to
check for cURL errors?
o A)
curl_errno()
o B)
curl_error()
o C)
curl_getinfo()
o D)
curl_exec()
Answer: B
80.
What is the purpose of the User-Agent
header?
o A)
To specify the type of content
o B)
To indicate the client's software making the request
o C)
To define the request's origin
o D)
To manage authentication
Answer: B
81.
In an API, what is meant by
"resource representation"?
o A)
The URL of the resource
o B)
The format in which the resource is returned
o C)
The status of the resource
o D)
The security level of the resource
Answer: B
82.
What is an API's "base
URL"?
o A)
The root URL from which all API endpoints are derived
o B)
The URL of the documentation
o C)
The location of the server
o D)
The user's access point
Answer: A
83.
What does the PATCH method do in REST
APIs?
o A)
It creates a new resource
o B)
It updates a resource partially
o C)
It retrieves data
o D)
It deletes a resource
Answer: B
84.
Which of the following is NOT a
typical HTTP response code for a successful request?
o A)
200
o B)
201
o C)
400
o D)
204
Answer: C
85.
What is the purpose of the If-None-Match
header in an API request?
o A)
To provide a unique identifier for the request
o B)
To check if the resource has changed since the last request
o C)
To authenticate the request
o D)
To specify the request method
Answer: B
86.
Which of the following methods is
used to update a resource in an API?
o A)
POST
o B)
GET
o C)
PUT
o D)
DELETE
Answer: C
87.
What does a 404 status code signify?
o A)
Unauthorized
o B)
Not Found
o C)
Bad Request
o D)
Server Error
Answer: B
88.
What is the function of the Cache-Control
header?
o A)
To define the content type
o B)
To manage caching behavior of requests and responses
o C)
To authenticate the request
o D)
To specify the user agent
Answer: B
89.
In API documentation, what is a
"schema"?
o A)
A detailed description of how to implement the API
o B)
The structure of the data being sent and received
o C)
The server's configuration
o D)
The client-side code for accessing the API
Answer: B
90.
Which method is commonly used to
retrieve data from an API?
o A)
POST
o B)
GET
o C)
PUT
o D)
DELETE
Answer: B
91.
What is the purpose of the Location
header in a 201 response?
o A)
To provide the URL of the newly created resource
o B)
To define the response format
o C)
To specify caching options
o D)
To authenticate the request
Answer: A
92.
In the context of APIs, what does
"json" stand for?
o A)
JavaScript Object Notation
o B)
Java Serialized Object Notation
o C)
JavaScript Optimized Notation
o D)
Java Object Notation
Answer: A
93.
What does the Accept header specify
in an API request?
o A)
The user's role
o B)
The type of response formats that are acceptable
o C)
The type of request being made
o D)
The length of the request body
Answer: B
94.
Which of the following methods is
idempotent, meaning repeated requests yield the same result?
o A)
POST
o B)
GET
o C)
DELETE
o D)
Both B and C
Answer: D
95.
What is a common use of the HEAD
method in an API?
o A)
To retrieve only headers, without the body
o B)
To create a new resource
o C)
To update a resource
o D)
To delete a resource
Answer: A
96.
What does the curl_setopt($ch,
CURLOPT_HTTPHEADER, $headers) function do?
o A)
It sets the request method
o B)
It allows you to send custom headers with the request
o C)
It retrieves response headers
o D)
It closes the cURL session
Answer: B
97.
What does the User-Agent string in a
request typically represent?
o A)
The user's location
o B)
The software or browser making the request
o C)
The API endpoint
o D)
The server's identity
Answer: B
98.
What is a common practice for
securing APIs?
o A)
Allowing all IP addresses
o B)
Using API keys and HTTPS
o C)
Limiting the number of endpoints
o D)
Ignoring authentication
Answer: B
99.
In an API context, what is a
"mock server"?
o A)
A server that stores real user data
o B)
A simulated server used for testing
o C)
A server that handles all API requests
o D)
A server that monitors API performance
Answer: B
100.
What is the purpose of using a
version number in an API URL? - A) To specify the data
format - B) To indicate the status of the API - C) To manage changes and
updates to the API without breaking existing functionality - D) To authenticate
the request
Answer: C
This set of 100
multiple-choice questions covers a wide range of topics related to APIs and
PHP, which should be useful for assessments or educational purposes. Let me
know if you need any adjustments or specific topics to be included!