RAML (RESTful API Modeling Language) is a YAML-based specification language for describing RESTful APIs with first-class support for reusable patterns, traits, resource types, annotations, libraries, overlays, and extensions. Developed by MuleSoft and Salesforce; RAML 1.0 is the current stable version. The raml-org GitHub organization repositories were archived read-only in February 2024.
- Website: raml.org
- Specification: github.com/raml-org/raml-spec
- GitHub Organization: github.com/raml-org
- Documentation: raml.org/developers/raml-100-tutorial
- Forum: forum.raml.org
- Type: Index (Standard)
API Design, Specification Language, Standards, YAML, REST, API Modeling
The canonical RAML 1.0 specification is at github.com/raml-org/raml-spec.
Key constructs in RAML 1.0:
- Types: Unified type system replacing separate schema constructs
- Traits: Reusable method-level behaviors (applied with
is:) - Resource Types: Reusable resource patterns (applied with
type:) - Annotations: Typed extensibility mechanism
- Libraries: Modular reuse via
uses:imports - Overlays / Extensions: Separated metadata and functional enhancement layers
- Security Schemes: OAuth 1.0/2.0, Basic, Digest, Pass Through
| Tool | Repository | Description |
|---|---|---|
| webapi-parser | raml-org/webapi-parser | Multi-format parser: RAML 0.8, 1.0, OAS 2.0, OAS 3.0 |
| raml-js-parser-2 | raml-org/raml-js-parser-2 | JavaScript RAML parser |
| raml-php-parser | raml-org/raml-php-parser | PHP RAML parser |
| ramldt2jsonschema | raml-org/ramldt2jsonschema | Convert RAML types ↔ JSON Schema |
| raml-tck | raml-org/raml-tck | Test Compatibility Kit for RAML 1.0 |
| raml-mock-service | raml-org/raml-mock-service | Generate mock services from RAML |
| File | Description |
|---|---|
| json-schema/raml-document-schema.json | JSON Schema for RAML 1.0 document structure |
| File | Description |
|---|---|
| json-structure/raml-document-structure.json | RAML 1.0 document structure documentation |
| File | Description |
|---|---|
| json-ld/raml-context.jsonld | Linked data context for RAML vocabulary |
| File | Description |
|---|---|
| examples/raml-basic-api-example.json | Basic RAML 1.0 API definition example |
| examples/raml-traits-example.json | RAML traits usage example |
| File | Description |
|---|---|
| vocabulary/raml-vocabulary.yml | RAML normative vocabulary (constructs, conformance terms) |
FN: Kin Lane Email: kin@apievangelist.com