API چیست و چه کاربردی در طراحی سایت دارد؟

Api یا رابط برنامه نویسی نرم افزار را با مثالی تعریف کنیم. فرض کنید که قصد دارید در سایت خود یک مترجم متن قرار داده و به کاربران خود امکان استفاده از یک مترجم را بدهید. تصور کنید چقدر زمان لازم است تا مترجمی که برنامه نویسی می کنید به اندازه مترجم گوگل حرفه ای شود. حالا فرض کنید سایت شما اصلا سایت برنامه نویسی نیست و دلیلی هم برای اینکه بخواهید خودتان چنین مترجمی بنویسید ندارید. آیا بهتر نیست از مترجم گوگل در سایت خود استفاده کنید. قطعا این راه بسیار ساده تر از نوشتن یک مترجم است. گوگل به شما امکان استفاده از مترجم خود را میدهد. شما کافیست که API گوگل را در سایت خود اضافه کنید و براحتی از مترجم گوگل استفاده نمایید.

API ها بشما اجازه می دهند که از داده های یک نرم افزار در یک نرم افزار دیگر استفاده کنید. کاربرد Api در هنگامی که قصد استفاده از نرم افزار های اندرویدی را داریم بیشتر خود را نشان میدهد. اغلب برنامه نویسان اندروید از APi برای ارتباط با یک سایت استفاده می کنند.

Api چیست

API چیست؟

Application Programming Interface به رابط برنامه نویسی نرم افزار و یا رابط کاربردی برنامه نویسی ترجمه شده است. در واقع API یک سری کد است. که امکان ارتباط نرم افزار های مختلف را میسر میکند. هنگامی که از API صحبت به میان می آید. معمولا ارتباطی که بین دو نرم افزار ایجاد میشود. بسیار فراتر از کدهای نوشته شده توسط برنامه نویس است. برای یک ارتباط معمولا برنامه نویس از ویژگی ها و کدهای سیستم عامل و یا سیستم مدیریت محتوا استفاده می کند. در برخی سایت های ایرانی از قابلیت کپی و پیست شدن اطلاعات برای مثال api استفاده شده است. که بدون قابلیت کلیپ برد ویندوز کارایی نخواهد داشت. در واقع برنامه نویس در هنگام تنظیم قابلیت کپی شدن اطلاعات برنامه خود تنها باید بداند قوانین کار با کلیپ برد ویندوز چیست و نرم افزا مقصد هم تنها باید بتواند با کلیپ برد ویندوز کار کند. در واقع یک نرم افزار واسط به نرم افزارها امکان کپی و پیست شدن اطلاعاتشان در دیگر نرم افزارها را فراهم می کند. در دنیای وب نیز چنین است. فرض کنید. که قصد دارید از یک پلاگین خاص در وب سایت خود برای کنترل کامنت ها استفاده کنید. این پلاگین از یک api برای اتصال سایت مبدا تولید کننده پلاگین به سایت شما استفاده می کند. و این api از قابلیت موجود در نرم افزار مدیریت محتوا برای تولید کامنت استفاده کرده و با کمک این قابلیتها امکان مدیریت کامنت ها را خواهد داشت.


مطالعه بیشتر: تأثیر هاست و سرور در سئو سایت


API در اتصال نرم افزار اندروید به سرور

نرم افزارهای اندروید هنگام اتصال به سرور از یک رابط نرم افزاری استفاده می کنند، این رابط گاهی وب سرویس و گاهی API نامیده میشود. بطور کلی این قبیل نرم افزارها از یکی از دو پلتفرم XML یا Ajax برای ارتباط با بانک داده استفاده می کنند. خود فایل های XML و یا Ajax اطلاعات را از یک فایل PHP یا یک فایل ASP دریافت می کنند. که این فایل ارتباط با بانک داده را فراهم می کند. همانطور که مشخص است دلیل این امر عدم اجازه دسترسی مستقیم به نرم افزار برای اتصال به بانک داده است. در واقع نرم افزار فقط میتواند اطلاعات را از بانک درخواست کند و بانک نیز با کمک فایل برنامه نویسی شد، این اطلاعات را در اختیار سرویس و یا API قرار میدهد. به این ترتیب حتی با هک کردن نرم افزار هم نمی توان درخواست های مانند drop table و یا درخواست هایی برای Injection کردن بانک داده ارسال کرد. Injection روندی است که طی آن کاربر با ارسال درخواست به بانک داده تمام نام کاربری و رمز های عبور موجود در سایت را فراخوانی می کند.

API ها در دنیای وب

امروزه شرکت های فراوانی برای ارائه خدمات خود از APi استفاده می کنند. شما میتوانید صدها پلاگین رایگان بیابید. که به شما امکان افزودن امکانات جالبی به سایت را میدهند و اکثرا با Api این خدمات را انجام می دهند. یکی از پرکاربرد ترین APi ها در دنیای وب APi شرکت تویتر است با کمک این APi میتوانید تویت های خود را در سایت به نمایش بگذاریید. این ابزار با امکان نمایش تعداد مشخصی از آخرین تویت های منتشر شده توسط شما در تویتر، جذابیت سایت شما را بالا میبرد.

نوشتن API

نوشتن Api برای یک نرم افزار تحت ویندوز و یا یک نرم افزار تحت وب کاملا متفاوت است. در نرم افزارهای تحت ویندوز و یا سایر سیستم های عامل معمولا API ها به کمک نرم افزارها و سرویس های سیستم عامل فعالیت می کنند. کد نویسی سرویس ها درست مانند کد نویسی یک نرم افزار نیازمند سالها مطالعه و تحقیق است. و در این مقاله امکان آموزش کد نویسی سرویس های ویندوزی و یا سرویس های تحت وب میسر نیست. برای برنامه نویسی APi های تحت ویندوز باید براساس زبان برنامه نویسی و سرویسی که قصد برنامه نویسی برای آن را دارید جستجو کنید. سایت https://docs.microsoft.com/ آموزش های و تکه کد های بسیار خوبی برای برنامه نویسی با محیط ویژال استودیو مایکروسافت است.


معرفی خدمات وب24: طراحی سایت وردپرس و کدنویسی اختصاصی


نوشتن API تحت وب

برای نوشتن APi تحت وب ابتدا باید پلتفرمی که با آن سایت خود را طراحی کرده ایم را مشخص کنیم. برای نوشتن APi در سایت های تخصصی که با ASP.net نوشته میشوند. میتوان با کمک C# یک APi نوشت.

API برای وب در Asp.net

این یک مثال است و ما سعی خواهیم کرد، که آن را به ساده ترین شکل ممکن ارائه دهیم. در ویژوال استودیو 2017 دستور File/new/project را اجرا کنید. از میان تمپلیت ها گزینه ASP.NET Core Web Application (.NET Core) را انتخاب کنید. در راهنمای ماکروسافت نام پروزه TodoApi است. بعد از انتخاب نام پروژه روی OK کلیک کنید. در پنجره New ASP.NET Core Web Application - TodoApi گزینه Web API را انتخاب کرده و روی OK کلیک کنید. مطمئن شوید که تیک گزینه Enable Docker Support را نزنید. نرم افزار را اجرا کنید. اینکار پنجره مرورگر را باز کرده و آدرس http://localhost:port/api/values در نوار آدرس ظاهر میشود. نام پورت ممک است، برای سیستم های مختلف متفاوت باشد. در صفحه مرورگر متن زیر را مشاهده می کنید.

["value1","value2"]

Api در وب

وب Api

افزودن یک ماژول کلاس

یک ماژول، یک شیئ است که داده را در نرم افزار به نمایش می گذارد. یک پوشه به نام Models اضافه کنید. برای افزودن کلاس TodoItem روی پوشه Models راست کلیک کرده و دستور Add/class را اجرا کرده و نام کلاس را TodoItem بگذارید. و روی Add کلیک کنید. به کلاس TodoItem کد های زیر را اضافه کنید.

namespace TodoApi.Models

{

public class TodoItem

{

public long Id { get; set; }

public string Name { get; set; }

public bool IsComplete { get; set; }

}

}

ایجاد database context

در گام های بالا بانک داده برای هر ایتم ایجاد شده یک ID ایجاد میکند. در این گام یک کلاس TodoContext باید ایجاد کنید. این کلاس توسط Microsoft.EntityFrameworkCore.DbContext پردازش می گردد. بعد ایجاد کلاس و تعیین نام آن کدهای کلاس را به این صورت ویرایش کنید:

using Microsoft.EntityFrameworkCore;

namespace TodoApi.Models

{

public class TodoContext : DbContext

{

public TodoContext(DbContextOptions<TodoContext> options)

: base(options)

{

}

public DbSet<TodoItem> TodoItems { get; set; }

}

}

فایل Startup.cs را در ویرایشگر باز کنید و کدهای آن را با این کدها جایگزین کنید:

using Microsoft.AspNetCore.Builder;

using Microsoft.EntityFrameworkCore;

using Microsoft.Extensions.DependencyInjection;

using TodoApi.Models;

namespace TodoApi

{

public class Startup

{

public void ConfigureServices(IServiceCollection services)

{

services.AddDbContext<TodoContext>(opt => opt.UseInMemoryDatabase("TodoList"));

services.AddMvc();

}

public void Configure(IApplicationBuilder app)

{

app.UseMvc();

}

}

}

افزودن یک کنترلر

در پنجره Solution Explorer روی پوشه Controllers راست کلیک کرده و دستور Add/new Item را اجرا کنید. در پنجره باز شده گزینه Web API Controller Class را از بین تمپلیت ها انتخاب کنید و نام آن را TodoController بگذارید.

کدهای این فایل را با این کدها جایگزین کنید:

using System.Collections.Generic;

using Microsoft.AspNetCore.Mvc;

using TodoApi.Models;

using System.Linq;

namespace TodoApi.Controllers

{

[Route("api/[controller]")]

public class TodoController : Controller

{

private readonly TodoContext _context;

public TodoController(TodoContext context)

{

_context = context;

if (_context.TodoItems.Count() == 0)

{

_context.TodoItems.Add(new TodoItem { Name = "Item1" });

_context.SaveChanges();

}

}

}

}

برای دریافت ایتم های to-do کد های زیر را به کلاس TodoController اضافه کنید.

[HttpGet]

public IEnumerable<TodoItem> GetAll()

{

return _context.TodoItems.ToList();

}

[HttpGet("{id}", Name = "GetTodo")]

public IActionResult GetById(long id)

{

var item = _context.TodoItems.FirstOrDefault(t => t.Id == id);

if (item == null)

{

return NotFound();

}

return new ObjectResult(item);

}

نمونه ای از پاسخ HTTP به متد GetAll :

[

{

"id": 1,

"name": "Item1",

"isComplete": false

}

]

برای تعیین آدرس نوار آدرس از دستور زیر استفاده کنید.

namespace TodoApi.Controllers

{

[Route("api/[controller]")]

public class TodoController : Controller

{

private readonly TodoContext _context;

متن GetById :

[HttpGet("{id}", Name = "GetTodo")]

public IActionResult GetById(long id)

{

var item = _context.TodoItems.FirstOrDefault(t => t.Id == id);

if (item == null)

{

return NotFound();

}

return new ObjectResult(item);

}

Id در اینجا وظیفه نگهداری عناصر todo را دارد. وقتی که GetById پاسخی دریافت کند یک ID پارامتر ID را برای اشیاء TODo ارسال می کند. برای تعیین نام روتین میتوان از Name = "GetTodo" استفاده کرد.

اگر کد ارجاعی از جیسون کد 200 باشد. اطلاعات بدرستی دریافت شده است و میتوان آنها را در مرورگر مشاهده کرد.

اگر بخواهیم آموزش خود را کامل کنیم باید نحوه افزودن و کم کردن به آیتم های کلاس TODO را نیز آموزش دهیم و در انتها نیز فایل خود را به یک بانک داده واقعی متصل کنیم. اما این آموزش تنها در حد معرفی است. قطعا شما میتوانید در سایت https://docs.microsoft.com صدها صفحه آموزش ایجاد API برای صفحات وب توسط Asp.net را بیابید و مطالعه فرمائید.


مطالعه بیشتر:  مقایسه طراحی سایت با php و asp.net


افزودن کنترل به Api

ایجاد یک API برای صفحات مبتنی برPHP

اگر شما از نرم افزارهای متن باز برای طراحی سایت استفاده می کنید براحتی میتوانید برای ساخت API از جیسون استفاده کنید.

ابتدا فایل جیسون را ایجاد کنید:

obj = { "table":"customers", "limit":10 };
dbParam = JSON.stringify(obj);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = this.responseText;
}
};
xmlhttp.open("GET", "json_demo_db.php?x=" + dbParam, true);
xmlhttp.send();

فایل ما با فرض اینکه در بانک داده جدولی به نام customers وجود دارد 10 مشتری اول جدول را باز می گرداند. همانطور که میبینید. هیچ کجای این کد ما مستقیم به بانک داده وصل نیستیم. اتصال به بانک داده را فایل json_demo_db.php برای ما انجام میدهد این فایل کدهای زیر را در خود دارد:

<?php
header("Content-Type: application/json; charset=UTF-8");
$obj = json_decode($_GET["x"], false);

$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
$result = $conn->query("SELECT name FROM ".$obj->table." LIMIT ".$obj->limit);
$outp = array();
$outp = $result->fetch_all(MYSQLI_ASSOC);

echo json_encode($outp);
?>

امکان آموزش جیسون و PHP در این مقاله میسر نیست ولی میتوانید در سایت W3schools آموزش های مفیدی در این موضوع مطالعه کنید.

faq

Application Programming Interface به رابط برنامه نویسی نرم افزار و یا رابط کاربردی برنامه نویسی ترجمه شده است.

امروزه شرکت های فراوانی برای ارائه خدمات خود از APi استفاده می کنند. شما میتوانید صدها پلاگین رایگان بیابید. که به شما امکان افزودن امکانات جالبی به سایت را میدهند.

همچنین بخوانید
ajax چیست و چه زمانی می توان از آن استفاده کرد؟ وب 24 در این مقاله به معرفی ایجکس و مزایا و معایب استفاده از آن پرداخته است.
منظور از کوتاه کننده لینک چیست و چه کاربردی دارد؟ وب 24 در این مقاله به تعریف کوتاه کننده لینک و معرفی بهترین سرویس های کوتاه کننده لینک پرداخته است.
دامین یا دامنه همان آدرس سایت شما است. با وب 24 همراه باشید تا با تمام نکات راهنمای خرید و ثب دامین آشنا شوید.
ویو پورت یا viewport چیست؟ متا تگ ویو پورت نقش بسیار مهمی در سئو و طراحی ریسپانسیو سایت دارد. آشنایی کامل با متاتگ view port را در این مقاله از وب 24 بخوانید.
دیدگاه خود را با ما در میان بگذارید
امتیاز:
captcha