A એ RESTful API(Representational State Transfer) ડિસ્ટ્રિબ્યુટેડ સિસ્ટમ્સમાં એપ્લીકેશન પ્રોગ્રામિંગ ઈન્ટરફેસ(APIs) ને ડિઝાઇન અને મેનેજ કરવા માટે આર્કિટેક્ચર અને પ્રોટોકોલનો એક પ્રકાર છે. RESTful API આર્કિટેક્ચરના મૂળભૂત સિદ્ધાંતો પર બનેલ છે REST, રોય ફિલ્ડિંગ દ્વારા તેમના 2000ના મહાનિબંધમાં વર્ણવેલ પદ્ધતિ.
મુખ્ય લાક્ષણિકતાઓમાં RESTful API શામેલ છે:
સરનામું-આધારિત ઍક્સેસ
દરેક સંસાધનને URL(યુનિફોર્મ રિસોર્સ લોકેટર) દ્વારા દર્શાવવામાં આવે છે, જે સિસ્ટમને HTTP વિનંતીઓ જેમ કે GET, POST, PUT અને DELETE દ્વારા વાતચીત કરવાની મંજૂરી આપે છે.
સ્ટેટલેસ એક્સેસ
ક્લાયંટની દરેક વિનંતીમાં અગાઉની સ્થિતિની માહિતી પર આધાર રાખ્યા વિના વિનંતીને સમજવા માટે સર્વર માટે પૂરતી માહિતી હોય છે. સર્વર વિનંતીઓ વચ્ચે ક્લાયંટની સ્થિતિ વિશેની માહિતી સંગ્રહિત કરતું નથી.
HTTP પદ્ધતિનો ઉપયોગ
RESTful API POST દરેક વિનંતીના હેતુને વ્યાખ્યાયિત કરવા માટે HTTP પદ્ધતિઓ(GET,, PUT, DELETE) નો ઉપયોગ કરે છે. ઉદાહરણ તરીકે, GET માહિતી પુનઃપ્રાપ્ત કરવા માટે, POST નવો ડેટા બનાવવા માટે, અપડેટ કરવા માટે PUT અને દૂર કરવા માટે DELETE નો ઉપયોગ કરો.
મીડિયા પ્રકારોનો ઉપયોગ
JSON, XML અથવા અન્ય કસ્ટમ ફોર્મેટ જેવા ફોર્મેટનો ઉપયોગ કરીને ડેટા નેટવર્ક પર પ્રસારિત થાય છે. દરેક વિનંતીને ઇચ્છિત ડેટા ફોર્મેટનો ઉલ્લેખ કરવાની જરૂર છે.
સંસાધન ઓળખ
સંસાધનોને અનન્ય URL દ્વારા ઓળખવામાં આવે છે, જે ગ્રાહકોને પાથ-આધારિત ઓળખકર્તાઓનો ઉપયોગ કરીને સંસાધનોને ઍક્સેસ કરવાની મંજૂરી આપે છે.
કેશેબલ
કાર્યક્ષમતાને ઑપ્ટિમાઇઝ કરવા માટે એક તરફથી વિનંતીઓ અને પ્રતિસાદો RESTful API ક્લાયંટ અથવા પ્રોક્સી સર્વર મેમરીમાં સંગ્રહિત કરી શકાય છે.
સ્તરવાળી સિસ્ટમ
આર્કિટેક્ચર REST માપનીયતા અને વ્યવસ્થાપનક્ષમતા વધારવા માટે મધ્યસ્થી સ્તરો જેમ કે લોડ બેલેન્સર્સ અથવા પ્રોક્સી સર્વર્સ ઉમેરવાની મંજૂરી આપે છે.
RESTful API નો વ્યાપકપણે વેબ અને મોબાઇલ એપ્લિકેશન ડેવલપમેન્ટમાં ઉપયોગ થાય છે, જે એપ્લિકેશનો વચ્ચે કાર્યક્ષમ સંચાર અને ડેટા શેરિંગને સક્ષમ કરે છે. Facebook, Twitter અને Google જેવી મુખ્ય વેબ સેવાઓ પણ વિકાસકર્તાઓને API પ્રદાન કરવા માટે RESTful આર્કિટેક્ચરનો ઉપયોગ કરે છે.