1. RAML’s next Evolution
5. All contents © MuleSoft Inc.
6. All contents © MuleSoft Inc.
17. All contents © MuleSoft Inc.
18. Let me show you! 18
19. What else is new? 19
26. All contents © MuleSoft Inc. 26
7. All contents © MuleSoft Inc. You didn’t have any specs...
21. All contents © MuleSoft Inc. Brand new Website 21
22. All contents © MuleSoft Inc. RAML Projects 22
8. All contents © MuleSoft Inc. Let me introduce you to RAML (Restful API Modeling Language)
20. All contents © MuleSoft Inc. API Workbench a brand new IDE to design APIs offline, built on top of GitHub’s Atom project, meaning collaboration and versioning have never been easier! Finally, a tool for developers to design APIs with!
24. All contents © MuleSoft Inc. 24 come and visit us on raml.org @ramlapi
25. All contents © MuleSoft Inc. 25 and the most important CONTRIBUTE / SEND FEEDBACK https://github.com/raml-org/raml-spec
4. All contents © MuleSoft Inc. Imagine you’re building a city using Legos. “ I want my city to have a fire department, a police department, and a park.”
23. All contents © MuleSoft Inc. and lots more ... 23 1. RAML Newsletter 2. RAML MVP Program 3. ...
9. All contents © MuleSoft Inc. Design and Document your APIs in a single file An open spec language designed to be human readable and to encompass the entire API lifecycle Core What is RAML?
2. All contents © MuleSoft Inc. What we discuss today • A Quick Recap about API Design • A Quick Recap about RAML • RAML’s Evolution to v1.0 • Let me show you! • What’s other things are New
3. All contents © MuleSoft Inc. About Me • API Addict • Technology = Love • Developer & Open Source Contributor • Traveler or such • Community Product Manager @ MuleSoft @ChristianVogel_
11. All contents © MuleSoft Inc. Reusability & Pattern Core What is RAML? An open spec language designed to be human readable and to encompass the entire API lifecycle Create reusable pattern-oriented assets shareable across multiple APIs traits resource types security schemes schemas
10. All contents © MuleSoft Inc. What does RAML look like? 10 # % RAM L 0.8 title: W orld M usic API baseUri: http://exam ple.api.com /{version } version: v1 /playlist: # resource get: # HTTP m ethod responses: 200: # HTTP response code body: application/json: # HTTP response m edia type exam ple: | { “ playlistID” : 1, “ playlistNam e” : “M y Aw esom e Playlist”, “ genre” : “top40”, “ songs” : 40 }
12. All contents © MuleSoft Inc. Data Modeling Reusability & Pattern Core RAML’s Evolution to v1.0 An open spec language designed to be human readable and to encompass the entire API lifecycle traits resource types security schemes schemas Libraries Overlays & Extensions Fragments Increases RAMLs core strengths around reusability and separation of concerns ; and introduces a unified, streamlined, and powerful way to model data Annotations
16. All contents © MuleSoft Inc. Overlays / Extensions 16 16 non-API details non-API details RAML Definition RAML Definition extends Simplify your RAML definition by separating non-API details into overlays / extensions # % RAM L 1.0 O verlay extends: api.ram l usage: Add AW S Configuration Details /custom er: (AW S.Configuration): ... # % RAM L 1.0 O verlay extends: api.ram l usage: Add AW S Configuration Details /custom er: (AW S.Configuration): ... # % RAM L 1.0 /custom er: description: Acquisition of Custom ers # % RAM L 1.0 /custom er: description: Acquisition of Custom ers
14. All contents © MuleSoft Inc. Libraries 14 RAML Definition RAML Definition Marketing Dept IT Dept # % RAM L 1.0 Library securitySchem es: oauth_2_0: jw t: ... # % RAM L 1.0 Library securitySchem es: oauth_2_0: jw t: ... # % RAM L 1.0 Library types: custom er: cam paign: ... # % RAM L 1.0 Library types: custom er: cam paign: ... Separate and group reusable RAML assets into libraries, which can then be pulled into the RAML definition in a namespaced format
13. All contents © MuleSoft Inc. Data Modeling 13 types: Em ail: type: object properties: subject: string body: string Em ails: type: Em ail[] m inItem s: 1 uniqueItem s: true exam ples: em ailExam ple1: - subject: M y Em ail 1 body: This is the text for em ail 1. - subject: M y Em ail 2 body: This is the text for em ail 2. em ailExam ple2: - subject: Another Em ail body: This is another exam ple. Express your data using YAML Define multiple Examples Reuse existing Types Define Types and Characteristics
15. All contents © MuleSoft Inc. Annotations 15 RAML Definition RAML Definition # % RAM L 1.0 title: M y API /send: get: ... # % RAM L 1.0 title: M y API /send: get: ... Describe your general API structure Describe your metadata characteristics # % RAM L 1.0 Library annotationTypes: throttling: properties: lim it: integer ... # % RAM L 1.0 Library annotationTypes: throttling: properties: lim it: integer ... # % RAM L 1.0 title: M y API ... /send: (throttling): lim it: 10 get: ... # % RAM L 1.0 title: M y API ... /send: (throttling): lim it: 10 get: ... Enhance your RAML definition with additional user-defined metadata either for documentation or processing.