Appearance
Base profile & modeling
This page describes how to model applications using the Base platform.
It focuses on:
- simple types
- REST modeling
- methodtypes
- pseudocode for sequence diagrams
- layers
- how the model maps to OpenAPI + diagram artefacts
1. Simple types
Provided by common-base/types.cmn:
String,Integer,Long,BooleanDate,DateTime- semantic helper types like
Id
Used across all higher‑level platforms.
2. REST modeling with resources
Example:
cmn
resource /hello as Greeting {
read sayHello()
}2.1 Methodtypes
Base provides:
Raw:
GET,POST,PUT,DELETE
Opinionated (CRUD):
create→ POSTread→ GETupdate→ PUTdelete→ DELETEquery→ GET with optional pagination
Example:
cmn
resource /customers as Customer[] by id {
create()
read readCustomer()
update()
delete()
query()
}3. Types
Basic:
cmn
type Greeting {
message*: String
}Complex types show up in datatype diagrams (hierarchy, references).
4. Pseudocode (optional)
Used to generate sequence diagrams:
cmn
provide /hello subPackage='greeting.v1' controller="GreetingV1Controller" {
read {
if 'is morning' {
[[ return 'Good Morning' ]]
} else 'is evening' {
[[ return 'Good Evening' ]]
} else {
[[ return 'Hello']]
}
}
}5. Layers
Layers can be defined:
cmn
core package com.example.demo
platform Basecmn
api package com.example.demo.api
platform BaseThey affect:
- diagram organisation
- outlet routing
6. Summary
The Base facility allows you to:
- define types
- define REST resources
- use methodtypes
- model processes
- generate OpenAPI + diagrams
