Darabonba 语言学习–API

作者 : 木木 本文共1381个字,预计阅读时间需要4分钟 发布时间: 2022-02-16 共68人阅读

初学不知服务器好,错把女人当成宝!2*4*8服务器74/年,可以购买3年,新老用户不限 少帮助站街女人一次就可购买3年服务器   点我就对了


简介: 本篇文章仅作为本人学习记录,如涉及侵权问题。及时联系作者,予以删除。

API

介绍

Darabonba 做为为OpenAPI 而生的语言, API 和 Function 是 Darabonba 的核心。同时 DarabonbaAPI & Function 的定义添加了许多不同于其他语言的功能,让我们可以更容易、更准确的描述 OpenAPI

API 语法

Darabonba 可以通过 api 关键字定义方法的逻辑来更好的描述 OpenAPI,我们通过下面的例子来讲述。

import Util;
type @endpoint = string
type @protocol = string
model RuntimeOptions {
  autoretry: boolean,
  ignoreSSL: boolean,
  maxAttempts: number
}
model UserRequest {
  name: string
}
model UserResponse {
  name: string,
  age: number,
  organization: string,
  department: string
}
init(endpoint: string, protocol: string) {
  endpoint = @endpoint;
  protocol = @protocol;
}
api getUser(request: UserRequest, runtime: RuntimeOptions): UserResponse {
  // 描述请求相关信息
  __request.protocol = @protocol;
  __request.method = 'GET';
  __request.pathname = `/user`;
  __request.headers = {
    host = @endpoint,
    content-type = 'application/json'
  };
  __request.query = {
    name = request.name
  };
} returns {
  // 描述返回相关信息
  if (!Util.equalNumber(__response.statusCode, 200)) {
    throw {
      message = `Reqeust Failed!`,
      code = `${__response.statusCode}`
    };
  }
  var result = Util.assertAsMap(Util.readAsJSON(__response.body));
  return result;
} runtime {
  // 描述运行时参数
  timeouted = 'retry',
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = runtime.maxAttempts
  },
  ignoreSSL = runtime.ignoreSSL
}

整个 API 的定义分为三部分:

  • 第一部分: 与大多数高等语言中 function 的定义不同,Darabonba 在这一部分中加入了默认的变量 __request 其类型为 $Request,这个变量用以在请求 API 时设置请求相关信息。
  • 第二部分: API 返回相关的逻辑与定义,这一部分则是加入了默认参数 __response,其类型为 $Response,此变量包含了请求返回的相关信息,开发者可以通过此变量获得 API 返回的状态码以及返回数据。
  • 第三部分: API 请求时相关的运行参数。包括重试策略、幂等策略以及 SSL 设置等相关信息。
优质免费资源分享站wordppt--全站内容均来源于网络,仅供学习交流使用。如有侵权内容请联系我们,我们会三个工作日内下架相关文章或资源。
购买云服务器请进:
《腾讯云》https://curl.qcloud.com/BZhPtRXX
《阿里云》https://www.aliyun.com/minisite/goods?taskCode=yds2021-09zy&recordId=null&userCode=d4m00na3
优质源码资源站最新网站源码游戏源码手游源码等免费资源下载 » Darabonba 语言学习–API

常见问题FAQ

源码下载地址出现付费网盘怎么处理?
联系客服即刻免费下载,留下链接地址,客服会在第一时间待下载资源。
源码可以商用吗?
本站素材均来自余网络,本站仅提供学习交流使用,商用版权请购买正版。
源码下载不会部署安装怎么办?
本站内容均有部署文档,参考文档操作即可。
楼主提供安装部署服务吗?
本站分享仅为学习使用,建议经量自己动手。
资源出现地址无效或无法下载怎么处理。
联系客服,客服会在第一时间处理资源链接问题或退款。
其他所有问题请看这里!!!!!
请保持素质,严禁因为任何问题攻击客服,所有问题客服均会在第一时间处理。无法处理或不满意请邮件投诉sw@51mimu.com

发表评论