0% нашли этот документ полезным (0 голосов)
6 просмотров4 страницы

Тип Api Описание Применение Конкретный пример применения Пример на Java

Загружено:

Andreyldhz
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате DOCX, PDF, TXT или читать онлайн в Scribd
0% нашли этот документ полезным (0 голосов)
6 просмотров4 страницы

Тип Api Описание Применение Конкретный пример применения Пример на Java

Загружено:

Andreyldhz
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате DOCX, PDF, TXT или читать онлайн в Scribd

опиши все существующие варианты API в табличном виде

вот описание основных вариантов API в табличном виде:

Тип API Описание Применение Конкретный Пример на Java


пример
применения
REST Стиль Широко используется API для доступа @RestController @RequestMapping("/users") public
class UserController { @GetMapping("/{id}")
(Representation архитектуры, для создания веб- к ресурсам,
public User getUser(@PathVariable Long id)
al State основанный на служб и например, { return [Link](id); }
Transfer) HTTP- взаимодействия между получение @PostMapping public User createUser(@RequestBody
протоколе, клиентом и сервером. данных о User user) { return [Link](user); } }
использующий пользователях.
методы GET,
POST, PUT,
DELETE.
SOAP (Simple Протокол Используется для API для @WebService public class BankService
{ @WebMethod public Account
Object Access обмена создания веб-служб с банковских
getAccountDetails(@WebParam(name = "accountId")
Protocol) сообщениями на высоким уровнем услуг, где String accountId) { return
основе XML, безопасности и требуется [Link](accountId); } }
работающий надежности. высокий уровень
через HTTP, безопасности.
SMTP, и другие
протоколы.
GraphQL Язык запросов Используется для API для @RestController @RequestMapping("/graphql")
public class GraphQLController { @Autowired
для API, оптимизации запросов социального
private GraphQL graphQL; @PostMapping public
позволяющий к API и уменьшения приложения, где Map<String, Object> execute(@RequestBody
клиентам объема передаваемых нужно получать Map<String, Object> request) { return
запрашивать данных. только [Link]((String)
только определенные [Link]("query")).toSpecification(); } }
необходимые поля профиля.
данные.
gRPC (Google Фреймворк для Используется для API для public class GreeterImpl extends
Remote удаленного высокопроизводительн микросервисов в [Link] { @Override public
void sayHello(HelloRequest req,
Procedure Call) вызова ых микросервисов и крупной
StreamObserver<HelloReply> responseObserver)
процедур, взаимодейстия между распределенной { HelloReply reply =
использующий ними. системе. [Link]().setMessage("Hello " +
протокол [Link]()).build();
HTTP/2 и [Link](reply);
[Link](); } }
Protobuf для
сериализации
данных.
WebSocket Протокол, Используется для API для чата в @ServerEndpoint("/chat") public class
ChatEndpoint { @OnOpen public void
обеспечивающи создания приложений реальном
onOpen(Session session) { } @OnMessage public
й двустороннюю реального времени, времени, где void onMessage(String message, Session session)
связь между таких как чаты и нужно throws IOException { for (Session s :
клиентом и онлайн-игры. мгновенно [Link]())
сервером по получать и { [Link]().sendText(message); } }
@OnClose public void onClose(Session session)
постоянному отправлять { } }
соединению. сообщения.
GraphQL Язык запросов Используется для API для @RestController @RequestMapping("/graphql")
public class GraphQLController { @Autowired
для API, оптимизации запросов социального
private GraphQL graphQL; @PostMapping public
позволяющий к API и уменьшения приложения, где Map<String, Object> execute(@RequestBody
клиентам объема передаваемых нужно получать Map<String, Object> request) { return
запрашивать данных. только [Link]((String)
только определенные [Link]("query")).toSpecification(); } }
необходимые поля профиля.
данные.
XML-RPC Протокол Используется для API для XmlRpcClient client = new
XmlRpcClient("[Link]
удаленного интеграции систем, взаимодействия
Vector<Object> params = new Vector<>();
вызова особенно на начальных между старыми и [Link]("param1"); Object result =
процедур, этапах развития веб- новыми [Link]("methodName", params);
использующий служб. системами.
XML для
кодирования
вызовов и HTTP
для их передачи.
JSON-RPC Протокол Легкий и простой API для JsonRpcHttpClient client = new
JsonRpcHttpClient(new
удаленного протокол для обмена легковесных веб-
URL("[Link] String
вызова данными, используется служб, где не result = [Link]("methodName", new
процедур, в простых веб- требуется Object[] {"param1"}, [Link]);
использующий службах. сложная
JSON для структура
кодирования данных.
вызовов и HTTP
для их передачи.
OData (Open Протокол для Используется для API для доступа @RestController @RequestMapping("/odata") public
class ODataController { @GetMapping("/products")
Data Protocol) создания и создания RESTful API, к данным в
public
потребления работающих с корпоративной ResponseEntity<CollectionModel<EntityModel<Produ
API, данными, например, в системе ct>>> getProducts() { return
использующий корпоративных управления [Link]([Link]()); } }
стандартные приложениях. ресурсами.
HTTP-методы и
URL для доступа
к данным.
OpenAPI Спецификация Используется для Документирован @RestController @RequestMapping("/api") public
class ApiController { @GetMapping("/products")
(Swagger) для описания и документирования API ие и
public List<Product> getProducts() { return
документирован и генерации тестирование [Link](); }
ия RESTful API. клиентских SDK. API для e- @GetMapping("/products/{id}") public Product
commerce getProduct(@PathVariable Long id) { return
приложения. [Link](id); } } @Configuration
public class SwaggerConfig { @Bean public
OpenAPI customOpenAPI() { return new
OpenAPI().components(new Components()).info(new
Info().title("E-commerce
API").version("1.0")); } }

Эта таблица включает основные варианты API, их описание, применение, конкретные примеры использования и примеры реализации на
Java.

Вам также может понравиться