REST API Архитектура и стандарты
Архитектура REST API была создана, чтобы упростить и стандартизировать процедуры доступа к данным из различных служб.
Эта логическая архитектура часто использует структуру данных JSON для отправки и получения данных. JSON — это открытый стандартный формат файла и формат обмена данными, в котором для хранения и передачи объектов данных, состоящих из пар атрибут-значение и массивов, используется удобочитаемый текст.
Пример данных JSON:
{
"api": "v2.7",
"apipath": "https://www.rackcorp.net/api/v2.7"
}
Эти данные могут быть представлены в виде массива или объекта на многих языках, таких как PHP, PYTHON и C#.
Rackcorp перенесла многие из своих функций для работы с архитектурой REST API, чтобы модернизировать и упростить процесс получения данных по протоколу HTTP. Каждый месяц мы добавляем новые сервисы через REST API. Важно, чтобы вы подписались на нас, чтобы получать последние обновления и последнюю версию нашего API.
Некоторые важные концепции REST API:
- методы HTTP - GET, POST, PUT, DELETE
Веб-разработчики, вероятно, знакомы с GET и POST, а также с другими методами HTTP, также иногда называемыми HTTP-глаголами. Эти методы определяют тип запроса к REST API.
- Методы по использованию:
- GET - запросить данные
- POST - вставить новые данные
- PUT - обновить данные
- DELETE - удалить данные
- Имена ресурсов:
Resources are sometimes referred to as the nouns that the HTTP verbs act upon. Earlier web services were built around remote procedure calls, which saw APIs as extensions of the code that called them. By contrast, REST resources can be accessed with multiple HTTP methods.
Ресурсы иногда называют существительными, на которые воздействуют HTTP-глаголы. Ранее веб-службы были построены на основе удаленных (на дистанции) вызовов процедур, в которых API рассматривались как расширения вызывающего их кода. Напротив, к ресурсам REST можно получить доступ с помощью нескольких методов HTTP.
-
GET /api/animals:
получить список животных.POST /api/animals:
добавить новое животноеGET /api/animals/dog:
получить одно животное по идентификатору ID.PUT /api/animals/dog:
обновить одно животное по идентификатору ID.DELETE /api/animals/dog:
удалить животное по идентификатору ID.
- Форматы данных:
Большинство запросов API будут возвращать с сервера содержимое, которое клиент должен интерпретировать. Редко это содержимое представляет собой обычный текст — обычно оно использует формат структурированных данных. Хотя REST не определяет какие-либо форматы данных, чаще всего используются JSON и XML.
JSON:
{
"id": "dog",
"name": "Pet dog",
"genus": "Canis",
"img": "https://cdn2.thedogapi.com/images/1MZ0YbOpS.jpg"
}
XML:
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<id>dog</id>
<name>Domestic dog</name>
<genus>Canis</genus>
<img>https://cdn2.thedogapi.com/images/1MZ0YbOpS.jpg
</img>
</root>
- Статусы HTTP:
Поскольку API-интерфейсы REST зависят от стандартов HTTP, статус каждого запроса используется для сообщения результата запроса, такого как успех или неудача. Каждый код состояния предоставляет машиночитаемый ответ, а также сообщение, понятное человеку. Веб-разработчики (и ряд пользователей) знакомы со многими из них.
-
- 200: Удачный (Success)
- 201: Создан (Created)
- 401: Неавторизирован (Unauthorized)
- 403: Запрещен (Forbidden)
- 404: Не найден (Not found)
- 429: Слишком много запросов (Too many requests)
Хотя REST не является стандартом, существует множество других стандартов, часто связанных с REST. Например, OAuth охватывает стороннюю авторизацию ресурсов, а JSON PATCH описывает стандартный подход к методу HTTP PATCH для формата данных JSON. Важным стандартом, о котором следует помнить при разработке собственных API, является спецификация OpenAPI.
Как сделать запрос REST API для получения, вставки и обновления данных?
Вы можете создать REST API, используя любой язык программирования, такой как Javascript, PHP, PYTHON и C#. В этой статье мы добавим несколько примеров кода, чтобы объяснить, как сделать запрос с помощью Javascript (JQUERY) и PHP. Мы выбрали эти два языка, потому что это они самые популярные для развертывания веб-сайтов.
Мы настоятельно рекомендуем выполнять вызовы REST API только для бэкэнда. Будьте осторожны при использовании кода javascript для вызова URL-адреса REST API. Никогда не добавляйте свои учетные данные во фронтъенд.
Javscript (JQUERY):
Во-первых, Вам нужно создать небольшую логику для вызова URL-адреса API в качестве примера ниже:
<script>
let query = {};
const v = 'v2.7';
const URL = 'https://www.rackcorp.net/api/'+v+'/dcs';
$.ajax({
ur: URL,
type: 'GET',
data: query,
success: function(res) {
console.log(res);
alert(res);
},
error: function(res) {
console.log(res);
alert(res);
}
});
</script>
We have a variable called 'data' which is the object which would contain the pair of key-values which will be translate into a query in back-end. Them, we create a string variable which is the URL to connect to the REST API HTTP. With this two variables, we are able to create the AJAX script to call the REST API. If the code is correct, the logic will redirect to SUCCESS, if the code is wrong it will redirect to ERROR. Them, you can treat the response ('rest') as you wish.
Be careful to use javascript to make REST API requests. It is because javascript is a front-end programming language, it means the code runs in the user desktop (notebook, phones) and this code can be intercepted by hackers and any other malicious person. REST API requests in javascript is only recommended when you dont need to pass sensitive data, like keys, password or personal information. In the sample above, we called an URL to list all Data Centers (DC) in Rackcorp which doesnt need authentication, it is open to the world.
Вы можете видеть, что код для выполнения запросов с использованием REST API довольно прост.
У нас есть переменная с именем «данные», которая представляет собой объект, который будет содержать пару «ключ-значение», которая будет преобразована в запрос в бэкэнде. Затем мы создаем строковую переменную, которая является URL-адресом для подключения к REST API HTTP. С помощью этих двух переменных мы можем создать сценарий AJAX для вызова REST API. Если код правильный, логика перенаправит к УСПЕХУ, если код неправильный, он перенаправит к ОШИБКЕ. Вы можете относиться к ответу («отдых») по своему усмотрению.
Будьте осторожны, чтобы использовать javascript для выполнения запросов REST API. Это связано с тем, что javascript является интерфейсным языком программирования, это означает, что код запускается на рабочем столе пользователя (ноутбук, телефон) и этот код может быть перехвачен хакерами и любым другим злоумышленником. Запросы REST API в javascript рекомендуются только в том случае, если вам не нужно передавать конфиденциальные данные, такие как ключи, пароль или личную информацию. В приведенном выше примере мы вызвали URL-адрес, чтобы перечислить все центры обработки данных (DC) в Rackcorp, которые не требуют аутентификации, они открыты для всего мира.
PHP:
In PHP usually developers use CURL function to connect through HTTP. In the sample bellow you can understand how to implement a REST API request from your server to another server.
<?php
$v = 'v2.7';
$url = "https://api.rackcorp.net/api/". $v . "/dcs";
$query = [];
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($query));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
if($response) {
return json_decode($response, true);
}
return false;
As you can see we created the same variables 'v' and 'query' in PHP to call the REST API url. Them, we start creating the CURL initial command. We set some options in the CURL function such as POSTFIELDS and RETURNTRANSFER. You have many other options that you can add to CURL PHP. Have a look in the PHP docs to find out the best approach for your code logic.
Conclusion:
REST API request is a quite simple way to get, insert, and update data through internet with small effort. Nowadays, Mostly of services through the internet has implemented REST API functions and RACKCORP also has its own standard. If you need to connect to us using REST API, read more in RACKCORP REST API