Rest-Homework---记一次raml

前言

这是我第一次写raml,一开始杂乱无章没有从宏观角度去思考,什么都想加进去,导致越来越复杂,后来在李老师指导下抽丝剥茧,才看清楚raml真正的意义。

摘要

RAML 是一种基于HTTP-API的定义语言. 体现了所有对象传输状态的原则 . RAML基于YAML ,依靠标准和最佳实践从而编写更高质量的API . 生成全面的用户文档 .
RAML通过一个格式来提供规范的接口.作为API提供者和使用者之间的合约.用户可使用文档实现客户端和服务器的交互.

组织结构

  • 基本信息 解释了如何描述核心API的方面,如它的名称、标题、位置(URI)和违约。
  • 数据类型 描述了一种通过简化模型API数据类型系统,也包括JSON和XML模式。
  • 资源 描述了如何指定一个API的资源和嵌套的资源,以及在任何URI URI参数模板,所有一类事物从宏观讲都是一类,同一类中事物具有不同的性质,但是raml不考虑性质uri指向的就是资源,所有的操作方法只是对uri所指向的资源的操作,和uri本身并没有关系。
  • 方法 描述了如何指定API的资源上的method,以及他们的请求头,查询参数和请求,一般的有四个主要的method,post添加,get查询,put更新,delete删除。
  • 响应 描述API规范的反应,包括状态码、媒体类型,响应头和响应,一般有200-请求成功,404- 请求的资源不存在,500-服务器内部错误,。
  • 资源类型和特征 描述可选机制使用RAML资源类型和特征描述资源,避免不必要的重复在一个API的定义和促进一致性和重用,在对同一路径下的资源进行操作可以合并操作,对于get和post要理解输入什么,输出什么。
  • 安全 描述了机制中可用RAML指定一个API的安全方案。
  • 注释 描述了扩展机制RAML规范通过定义强类型的注释和应用规范。
    Includes,Libraries 覆盖以及扩展 描述了一个API的定义可能是由外部化定义文件,如何打包成库集合的定义,如何分离和覆盖层的元数据的RAML文档,以及一个API规范与附加功能可以扩展。

出现的问题以及解决方法

1.首先拿到需求时, 没有仔细对需求分析,需求中的三个接口,个人却又加入太多的个人定义,直接导致后面越来越复杂无法进行下去,其实首先拿到需求应该是做减法,先从满足最简单功能的开始,设计raml的初衷就是化繁为简,如同一张总施工图,指导每一步,但不过问每一步具体实现。

2.对资源定义理解不够深刻,人为给资源进行分类,没有对整体进行把握,比如我和plant都是同一个属性,当定义了plant是研发部领导的时候才有上下级关系,查找我只要在plant下面进行检索。

3.uri理解的偏差,raml里面包含,uri和method,uri就好比指的是资源的路径,method才是对资源操作的方法,这个理解是最重要的,之前我定义的/inputnode,/findnode,/allnode,相当于在三个路径里面对三个文件进行操作,只要理解到uri是路径,需求里所有的操作都是指向一个路径操作。

4.需求中输入节点返回节点及其子孙节点,/api/Nodes/{valuename},这里面valuename就是要查询的节点

/api/Nodes:
   /{valuename}:
       get:
         description: Get Total Value Xml information
         displayName: ValueNodeXml
         responses:
           200:
             body:
               application/xml:
                 type: HierarchyNode
           404:
           500:

5.http主要有四种方法,post添加,get查找,put更新,delete删除,在uri路径上进行操作方法选择上由于之前理解的偏差出错

6.在现有的需求里post不会有404,在get里面才有404,但是也要看实际情况,例如

7.post是输入body里是输入的资源,存储成功返回200,服务器错误返回500

  post:
      description: Obtain storage resources
      displayName: StorageResource
      body:
         application/json:
           type: HierarchyPath
      responses:
         200:
         500:

总结反思

我是半路转行培训学的java,计算机相关的基础知识知道甚少,数据结构一知半解,培训后总是把学到的东西作为一种标准来对比新接触的东西,这是一件很可怕的事情,在编程的行业的没有什么是一成不变的标准,时刻都在变换的行业里,就好比自己是一个小杯子装满了各个地方收集来水,以至于现在再也装不下更多,只有放空自己,才能装得下更多的东西。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,647评论 18 139
  • 一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式。”但是在要求详细讲述它所提出的各个约束,以及如...
    时待吾阅读 3,422评论 0 19
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,030评论 25 707
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,801评论 6 342
  • 重点:生命周期和启动模式以及IntentFilter的匹配规则分析。 正常情况下Activity的生命周期分析 o...
    伯纳乌大王阅读 262评论 0 0