Pull to refresh

API для своей программы (Delphi)

Reading time2 min
Views2.3K

Здравствуйте


В этой статье я хотел бы рассказать о том, что такое API и для чего он нужен. Как известно всё познаётся на практике. По этому я создам простейший API для своей программы, который должен послужить хорошим примером для новичков.

Что такое API?


Я позволю себе малюсенькую вырезку из вики: «Интерфейс программирования приложений (иногда интерфейс прикладного программирования) (англ. application programming interface, API [эй-пи-ай])[1] — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах. Используется программистами для написания всевозможных приложений.»

Для чего нужен API?


Допустим такую ситуацию: Я несколько месяцев, возможно лет, пишу программу. К примеру это чат с кучей крутых и навороченных функций. Я, как грамотный разработчик, реализовал свой протокол для обмена сообщениями, и запихнул его в DLL. Со временем моя программа становится всё известнее и слух о ней доходит до вас. Допустим, что вы захотели использовать мой протокол в своей программе, к примеру вам нужно сделать систему уведомлений пользователя при помощи моего чата. Вы идёте ко мне и говорите о своих намерениях. Я вас поддерживаю, но ведь исходный код я вам точно не дам, т.к. от этого зависит безопасность других пользователей в чате. Что же делать??? Конечно же! Мне, как разработчику, необходимо реализовать свой API!!!

Как создать свой API (пример)?


Для простоты допустим, что в нашей DLL, описывающей протокол, есть всего четыре функции:
function OpenNet: boolean;
begin
//......
OpenNet:=true;
end;

function ReadNet: string;
begin
//...
ReadNet:='Send: ...';
end;

function WriteNet(s:string): boolean;
begin
//...
WriteNet:=true;
end;

function CloseNet: boolean;
begin
//...
CloseNet:=true;
end;


Для того, чтоб другие программисты смогли использовать мой протокол в собственных целях необходимо им сообщить заголовки функций, то есть составить заголовочный модуль. Отлично! Этим и займёмся!
Вот пример простейшего API заголовочного модуля для нашего чата:
unit ShellNet;

interface

const
PathDll='Net.dll';

function OpenNet: boolean; stdcall; external PathDll;
function WriteNet(s: string): boolean; stdcall; external PathDll;
function ReadNet: string; stdcall;external PathDll;
Function CloseNet:boolean; stdcall;external PathDll;


implementation

end.


Этот модуль можно опубликовать на официальном сайте проекта и другие программисты смогут использовать функционал вашей программы в своих приложениях. Для этого им придётся лишь скачать и поместить этот модуль в папку с исходным кодом программы, далее в uses дописать название модуля. Это и есть API!!!

Заключение


В данной статье я хотел изнутри показать, что же такое API. Статья ориентирована для начинающих программистов.
Tags:
Hubs:
Total votes 9: ↑4 and ↓5+3
Comments12

Articles