آموزش API در زبان PHP

آموزش API در زبان PHP

نوشته شده توسط: تیم فنی نیک آموز
۲۲ تیر ۱۴۰۱
زمان مطالعه: 15 دقیقه
۴.۲
(۵)

مقدمه

درصورتی‌که شما هم در دنیای برنامه‌نویسی فعالیتی داشته باشید، ممکن است نام Api به گوشتان خورده باشد. اما آیا می‌دانید که این مفهوم به چه معناست؟ باید بدانید که Api و Rest Apiها به‌عنوان ستون فقرات توسعه وب به شمار می‌روند. اکثر برنامه‌های کاربردی در سطح وب که به‌عنوان برنامه‌های کاربردی فرانت‌اند توسعه داده می‌شوند از apiهای پشتیانی شده و متصل از زبان‌های مختلف استفاده می‌کنند. ما در این مقاله قصد داریم تا در خصوص آموزش API در PHP به‌عنوان یکی از زبان‌های برنامه‌نویسی مهم، صحبت کنیم.

API چیست؟

پیش از اینکه در خصوص آموزش API در PHP صحبت کنیم، لازم است تا شما را با مفهوم API آشنا کنیم. Api که مخفف “Application Programming Interface” است به یک سری مجموعه قوانین اشاره دارد. این مجموعه قوانین به نرم‌افزار اجازه می‌دهند تا با یک نرم‌افزار دیگر ارتباط برقرار کنند. باید اشاره کرد که این قوانین می‌توانند شامل ایجاد، خواندن، به‌روزرسانی و یا حذف باشند. اما شاید بپرسید که ضرورت آموزش API در PHP چیست؟

باید بدانید که استفاده از API می‌تواند به‌عنوان ساده‌ترین راه برای ایجاد، خواندن، به‌روزرسانی و یا حذف اطلاعات برنامه از طریق اینترنت یا پروتکل Http شناخته شود. چنین اطلاعاتی می‌توانند به‌سرعت در اختیار کاربران قرار بگیرند. یکی دیگر از دلایل اصلی آموزش API در PHP این است که می‌توان از آن در هر برنامه‌ای که به اینترنت متصل می‌شود، استفاده کرد. اگر در هر برنامه‌ای مشاهده کردید که داده‌ها آن توسط یک برنامه دیگر ایجاد، به‌روزرسانی و یا حذف شده، بدانید که این عمل با کمک apiها رخ‌داده است.

 

آموزش API در زبان PHP

آموزش API در PHP

در این قسمت از مقاله قصد داریم تا در خصوص آموزش RESTFUL API در PHP و API در PHP صحبت کنیم. برای اینکه آموزش API در PHP به‌صورت کامل در اختیار شما قرار بگیرد، ما به‌صورت بخش‌بخش و گام‌به‌گام دراین‌خصوص صحبت خواهیم کرد؛ ازاین‌رو آموزش API در PHP به‌صورت زیر خواهد بود:

اسکلت پروژه PHP را برای APIخود ایجاد کنید

اولین قدم در آموزش RESTFUL API در PHP این است که یک اسکلت برای پروژه خود ایجاد کنید. در این آموزش api در php ما از یک دایرکتوری /src و یک فایل composer.json در دایرکتوری با یک وابستگی کار خود را آغاز خواهیم کرد. در این مرحله نیاز است تا کتابخانه DotEnv را که به ما این امکان را می‌دهد جزئیات احراز هویت Okta خود را در یک فایل .env خارج از برنامه نگهداری کنیم، نیاز خواهیم داشت.

composer.json
{
"require": {
"vlucas/phpdotenv": "^2.4"
},
"autoload": {
"psr-4": {
"Src\\": "src/"
}
}
}

به کمک این قطعه کد در آموزش API در PHP ما یک بارگذاری خودکار PSR-4 را پیکربندی کرده‌ایم که به‌صورت خودکار کلاس‌های PHP را در فهرست /src جستجو می‌کند. همچنین ما یک دایرکتوری vendor / داریم و وابستگی DotEnv بر روی آن نصب شده است. همچنین در این آموزش api در php ما به یک فایل bootstrap.php نیاز داریم که متغیرهای محیطی ما را بارگیری کند.

<?php
require 'vendor/autoload.php';
use Dotenv\Dotenv;

$dotenv = new DotEnv(__DIR__);
$dotenv->load();

// test code, should output:
// api://default
// when you run $ php bootstrap.php
echo getenv('OKTAAUDIENCE');
آموزش API در زبان PHP

یک پایگاه‌داده برای API خود پیکربندی کنید

ما در این آموزش api در php از MySQL برای تقویت api خود استفاده خواهیم کرد؛ ازاین‌رو نیاز است یک پایگاه‌داده و کاربر جدید برای برنامه خود ایجاد کنیم:

mysql -uroot -p
CREATE DATABASE api_example CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'api_user'@'localhost' identified by 'api_password';
GRANT ALL on api_example.* to 'api_user'@'localhost';
quit

مابقی APIهای ما در این آموزش، تنها با یک موجودیت سروکار دارند: Person. اینم موجودیت دارای فیلدهای id، firstname, lastname, firstparent_id, secondparent_id خواهد بود. این موجودی به ما این امکان را می‌دهد تا افراد را با حداکثر دو والدین برای هر فرد تعریف کنیم؛ ازاین‌رو نیاز است تا جدول پایگاه‌داده خود را در MySQL ایجاد کنید.

یک کلاس دروازه (Gateway) برای جدول افراد اضافه کنید

قدم بعدی در آموزش api در php ما، به این نیاز دارید تا یک کلاس دروازه (Gateway) برای جدول افراد اضافه کنید. الگوهای زیادی برای کار با پایگاه‌داده در زمینه شیءگرا وجود دارد. در این آموزش، ما از یک api ساده استفاده کرده‌ایم. ازاین‌رو طبیعی است که از یک الگوی ساده نیز بهره ببریم؛ به این دلیل تنها یک Table Gateway اجرا می‌کنیم.

<?php
namespace Src\TableGateways;

class PersonGateway {

private $db = null;

public function __construct($db)
{
$this->db = $db;
}

public function findAll()
{
$statement = "
SELECT
id, firstname, lastname, firstparent_id, secondparent_id
FROM
person;
";

try {
$statement = $this->db->query($statement);
$result = $statement->fetchAll(\PDO::FETCH_ASSOC);
return $result;
} catch (\PDOException $e) {
exit($e->getMessage());
}
}

public function find($id)
{
$statement = "
SELECT
id, firstname, lastname, firstparent_id, secondparent_id
FROM
person
WHERE id = ?;
";

try {
$statement = $this->db->prepare($statement);
$statement->execute(array($id));
$result = $statement->fetchAll(\PDO::FETCH_ASSOC);
return $result;
} catch (\PDOException $e) {
exit($e->getMessage());
}
}

public function insert(Array $input)
{
$statement = "
INSERT INTO person
(firstname, lastname, firstparent_id, secondparent_id)
VALUES
(:firstname, :lastname, :firstparent_id, :secondparent_id);
";

try {
$statement = $this->db->prepare($statement);
$statement->execute(array(
'firstname' => $input['firstname'],
'lastname' => $input['lastname'],
'firstparent_id' => $input['firstparent_id'] ?? null,
'secondparent_id' => $input['secondparent_id'] ?? null,
));
return $statement->rowCount();
} catch (\PDOException $e) {
exit($e->getMessage());
}
}

public function update($id, Array $input)
{
$statement = "
UPDATE person
SET
firstname = :firstname,
lastname = :lastname,
firstparent_id = :firstparent_id,
secondparent_id = :secondparent_id
WHERE id = :id;
";

try {
$statement = $this->db->prepare($statement);
$statement->execute(array(
'id' => (int) $id,
'firstname' => $input['firstname'],
'lastname' => $input['lastname'],
'firstparent_id' => $input['firstparent_id'] ?? null,
'secondparent_id' => $input['secondparent_id'] ?? null,
));
return $statement->rowCount();
} catch (\PDOException $e) {
exit($e->getMessage());
}
}

public function delete($id)
{
$statement = "
DELETE FROM person
WHERE id = :id;
";

try {
$statement = $this->db->prepare($statement);
$statement->execute(array('id' => $id));
return $statement->rowCount();
} catch (\PDOException $e) {
exit($e->getMessage());
}
}
}

PHP API را پیاده‌سازی کنید

یکی از مهم‌ترین قسمت‌ها در آموزش api در php پیاده‌سازی آن خواهد بود. ما یک فایل /public/index.php ایجاد خواهیم کرد تا به‌عنوان کنترلر عمل کرده و درخواست‌ها را پردازش کند. همچنین یک src/Controller/PersonController.php برای مدیریت نقاط پایانی api ایجاد خواهیم کرد.

<?php
require "../bootstrap.php";
use Src\Controller\PersonController;

header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: OPTIONS,GET,POST,PUT,DELETE");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");

$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$uri = explode( '/', $uri );

// all of our endpoints start with /person
// everything else results in a 404 Not Found
if ($uri[1] !== 'person') {
header("HTTP/1.1 404 Not Found");
exit();
}

// the user id is, of course, optional and must be a number:
$userId = null;
if (isset($uri[2])) {
$userId = (int) $uri[2];
}

$requestMethod = $_SERVER["REQUEST_METHOD"];

// pass the request method and user ID to the PersonController and process the HTTP request:
$controller = new PersonController($dbConnection, $requestMethod, $userId);
$controller->processRequest();

API PHP خود را با OAuth 2.0 ایمن کنید

در قدم آخر آموزش api در php نیاز است تا API PHP خود را با OAuth 2.0 ایمن کنید. ما در این آموزش RESTFUL API در PHP از okta به‌عنوان سرور مجوز و برای ایجاد جریان اعتبار مشتری استفاده می‌کنیم. این جریان برای احراز هویت توصیه می‌شود و به هر مشتری یک شناسه و رمز می‌دهد.

نتیجه‌گیری

آموزش RESTFUL API در PHP طرف‌داران بسیار زیادی پیدا کرده است. از apiها می‌توانید در تمامی برنامه‌های کاربردی که به اینترنت متصل می‌شوند، استفاده کنید. این قوانین به نرم‌افزارهای اجازه می‌دهد تا با سایر نرم‌افزارها ارتباط برقرار کنند. ما در این مقاله در خصوص آموزش api در php صحبت کردیم و نکات مهمی را در این زمینه با شما به اشتراک گذاشتیم.

چه رتبه ای می‌دهید؟

میانگین ۴.۲ / ۵. از مجموع ۵

اولین نفر باش

title sign
دانلود مقاله
آموزش API در زبان PHP
فرمت PDF
12 صفحه
حجم 1 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
260 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
پروفایل نویسنده
title sign
دیدگاه کاربران

وبینار رایگان ؛ Power BI کلید رقابت شما در دنیا داده‌ها      چهارشنبه 12 اردیبهشت ساعت 15
ثبت نام رایگان
close-image