delphi restful-WiRL


delphi restful-WiRL

源码获取:https://github.com/delphi-blocks/WiRL

创建WiRL是为了简化 Delphi 中的 RESTful 服务实现,但更重要的是,它可以实现与用其他语言和工具编写的 REST 客户端的最大互操作性。

WiRL 遵循 Java JAX-RS 规范并尝试符合 6 个 REST 约束。

WiRL 是一个高级 REST 框架,通过将属性应用于这些类,将普通 Delphi 对象 (PODO) 公开为 RESTful Web 资源。

[Path('customers')]
TCustomerResource = class
public
  [GET]
  [Produces('TMediaType.APPLICATION_JSON')]
  function SelectCustomers: TCustomerList;

  [POST]
  [Consumes('TMediaType.APPLICATION_JSON')]
  [Produces('TMediaType.APPLICATION_JSON')]
  function InsertCustomer(ACustomer: TCustomer): TCustomer;
end;

WiRL 具有强大的 HTTP 内容协商并定义属性以将特定的 URI 模式和 HTTP 操作绑定到 Delphi 类的各个方法。它具有参数注入属性,因此您可以轻松地从 HTTP 请求中提取信息。它具有消息正文阅读器和编写器,允许您将数据格式编组和解组与 Delphi 对象分离。它具有异常映射器,可以将异常映射到 HTTP 响应代码和消息。

WiRL 使用 3 个子模块:

  1. 用于 JSON Web 令牌创建和验证的Delphi JOSE 和 JWT 库
  2. Neon - Delphi 的序列化库,用于将 Delphi 简单类型、对象、记录、数组等转换为 JSON 格式
  3. OpenAPI 3 for Delphi用于生成 OpenAPI 文档