You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The [Primer](https://microservice-api-patterns.github.io/MDSL-Specification/primer) is a good starting point. Detailed are explained on reference pages:
56
+
56
57
*[Data types](https://microservice-api-patterns.github.io/MDSL-Specification/datacontract) (a.k.a. published language)
* A language extension supporting queue-based messaging endpoints is [AsyncMDSL](https://microservice-api-patterns.github.io/MDSL-Specification/async-mdsl).
58
64
59
-
<!-- A language extension supporting queue-based messaging endpoints is [AsyncMDSL](https://github.com/giacomodeliberali/MDSL/tree/master/examples/asyncMDSL).-->
65
+
A [Quick Reference](https://microservice-api-patterns.github.io/MDSL-Specification/quickreference) providing reusable snippets is available as well.
60
66
61
67
62
68
## Repository Structure
63
69
64
70
This repository contains:
65
71
66
72
*[dsl-core](dsl-core), the DSL project, Xtext grammar and everything else needed to build an Eclipse plugin providing a MDSL editor.
67
-
<!-- * An older, not fully equivalent version of the grammar in [this folder](antlr4). -->
68
73
* Various [examples](examples).
69
74
* The [sources of the GitHub pages](docs) for MDSL.
70
-
*Some [background information](background)on other IDLs and related projects.
75
+
*[Background information](background): papers and presentations as well as information on relation to other IDLs and on related projects.
71
76
72
77
If you want to contribute to MDSL, you have to clone this repo and generate the required Xtext files.
73
78
74
-
*Note:*Setup and build process have been improved recently to ease integration with [Context Mapper](https://contextmapper.org/). As a consequence, the project has to be imported as an existing Maven project, and an adjustment of the IDE setup is required. The [readme](dsl-core/README.md) of the main project contains detailed instructions.
79
+
*Note:*The project has to be imported as an existing Maven project, and an adjustment of the IDE setup is required. The [readme](dsl-core/README.md) of the main project contains detailed instructions. This setup and build process eases integration with [Context Mapper](https://contextmapper.org/).
75
80
76
81
77
82
## Change Log
@@ -80,7 +85,7 @@ The latest version of the MDSL language MDSL version extends service contracts w
80
85
81
86
Since Version 5.2, MDSL supports true REST level 3 concepts both on the abstract endpoint type level and in the redesigned bindings and comes with additional Freemarker generators (Markdown reports, ALPS).
82
87
83
-
See [change log](changelog.md)for an evolution history; see GitHub [release notes](https://github.com/Microservice-API-Patterns/MDSL-Specification/releases)for additional update information.
88
+
The [Change Log](changelog.md)provides an evolution history; the GitHub [Release Notes](https://github.com/Microservice-API-Patterns/MDSL-Specification/releases)also contain update information.
84
89
85
90
86
91
## Context Information: MAP and Xtext
@@ -91,9 +96,9 @@ All [Microservice API Patterns (MAP)](https://microservice-api-patterns.org/) ar
91
96
* As enums for roles and responsibilities
92
97
* As stereotypes annotating representation elements
93
98
94
-
See ["MAP Decorators" section of the MDSL tutorial](https://microservice-api-patterns.github.io/MDSL-Specification/tutorial) for more information. <!-- TODO copy one-pager in SummerSoC paper to GitHub pages or elsewhere in repo -->
99
+
See ["MAP Decorators" section of the MDSL tutorial](https://microservice-api-patterns.github.io/MDSL-Specification/tutorial) for more information.
95
100
96
-
The MDSL grammar, to be found in src folder of the `dsl-core/io.mdsl` project, was originally developed with Eclipse Photon (4.8.0) and Xtext (2.14) as provided by the Eclipse Modeling Platform. MDSL makes use of the referencing feature in Xtext ('name' attribute). Future work is required to also support this technology in other IDEs (such as Visual Studio Code).
101
+
The MDSL grammar, located in the `src` folder of the `dsl-core/io.mdsl` project, was originally developed with Eclipse Photon (4.8.0) and Xtext (2.14) as provided by the Eclipse Modeling Platform. MDSL makes use of the referencing feature in Xtext ('name' attribute).
97
102
98
103
Feedback and contributions welcome!
99
104
@@ -122,11 +127,11 @@ We are happy to welcome new contributors who want to help improve MDSL language
122
127
* Submit pull requests. If you do so, we assume that you comply with this [Developer Certificate of Origin](https://developercertificate.org/).
123
128
* Contact us to discuss collaboration and integration opportunities.
124
129
125
-
<!--Please review our contribution rules/code of conduct upfront. Thank you!
This folder contains pointers to background information such as related projects and supporting tools.
2
2
3
-
# Related projects
3
+
# Presentations and Articles
4
4
5
-
## Microservice API Patterns (MAP)
5
+
## MDSL and Context Mapper
6
6
7
-
* The MAP website <https://microservice-api-patterns.org/> uses MDSL to feature patterns in action.
8
-
* The EuroPLoP paper [" Interface Responsibility Patterns: Processing Resources and Operation Responsibilities"](http://eprints.cs.univie.ac.at/6520/1/MAP-EuroPlop2020aPaper.pdf) features an MDSL example.
7
+
Papers and presentations co-authored by the MDSL creator(s):
9
8
10
-
## Design Practice Repository (DPR)
9
+
* Section 5.2 in *From OpenAPI Fragments to API Pattern Primitives and Design Smells*, Proc. of European Conference on Pattern Languages of Programs (EuroPLoP) 2021 ([PDF](http://design.inf.usi.ch/sites/default/files/biblio/apiace-europlop2021.pdf)) by Souhaila Serbout, Cesare Pautasso, Uwe Zdun, and Olaf Zimmermann features MDSL.
10
+
* Zimmermann, Olaf: *Dimensions of Successful Web API Design and Evolution: Context, Contracts, Components*, Keynote, 20th International Conference on Web Engineering (ICWE), June 11, 2020. ([PDF](https://ozimmer.ch/assets/presos/ZIO-ICWEKeynoteWADEC3v10p.pdf), [blog post](https://ozimmer.ch/practices/2020/06/10/ICWEKeynoteAndDemo.html))
11
+
* Kapferer, Stefan and Zimmermann, Olaf: *Domain-driven Service Design — Context Modeling, Model Refactoring and Contract Generation*. Proc. of SummerSoC 2020 conference, Springer CCIS Volume 1310 ([PDF](https://contextmapper.org/media/SummerSoC-2020_Domain-driven-Service-Design_Authors-Copy.pdf), [Presentation](https://contextmapper.org/media/Stefan-Kapferer_SummerSoC2020_presentation.pdf))
11
12
12
-
* DPR, available at <https://github.com/socadk/design-practice-repository> features MDSL in its Stepwise Service Design activity.
13
-
**New: *LeanPub book on [DPR](https://leanpub.com/dpr)
13
+
A [microservices and DevOps conference report](https://www.computer.org/csdl/magazine/so/2020/01/08938118/1fUSO0QBDnW) in IEEE Software also mentions Context Mapper and MDSL (open access).
14
14
15
-
#Tools
15
+
## Comparison with other Interface Definition Languages (IDLs)
16
16
17
-
## CLI and update site
17
+
* See slides in ["Dimensions of Successful Web API Design and Evolution: Context, Contracts, Components"](https://ozimmer.ch/assets/presos/ZIO-ICWEKeynoteWADEC3v10p.pdf)
18
+
* See [known uses of the API Description pattern in MAP](https://microservice-api-patterns.org/patterns/foundation/APIDescription#sec:APIDescription:KnownUses)
18
19
19
-
* See [Tools Users Guide](https://microservice-api-patterns.github.io/MDSL-Specification/tools)
20
20
21
-
## Context Mapper
21
+
#Related projects
22
22
23
-
* Context Mapper has a MDSL generator, see [here](https://contextmapper.org/docs/mdsl/).
23
+
## Microservice API Patterns (MAP)
24
24
25
-
# Presentations and Articles
25
+
* The MAP website <https://microservice-api-patterns.org/> uses MDSL to feature patterns in action.
26
+
* The EuroPLoP paper ["Interface Responsibility Patterns: Processing Resources and Operation Responsibilities"](http://eprints.cs.univie.ac.at/6520/1/MAP-EuroPlop2020aPaper.pdf) features an MDSL example.
26
27
27
-
## MDSL and Context Mapper
28
+
## Interface Refactoring Catalog (IRC)
29
+
30
+
* The MDSL Tools implement many of the refactorings described at [https://interface-refactoring.github.io/](https://interface-refactoring.github.io/)
31
+
* The paper ["From Code Refactoring to API Refactoring: Agile Service Design and Evolution"]("https://interface-refactoring.github.io/assets/IRC-FromCodeRefactoringToApiRefactoringCCIS2021.pdf") provides background information.
28
32
29
-
* Zimmermann, O.: Dimensions of Successful Web API Design and Evolution: Context, Contracts, Components, Keynote, 20th International Conference on Web Engineering (ICWE), June 11, 2020. ([PDF](https://ozimmer.ch/assets/presos/ZIO-ICWEKeynoteWADEC3v10p.pdf), [blog post](https://ozimmer.ch/practices/2020/06/10/ICWEKeynoteAndDemo.html))
30
-
* Kapferer, S.; Zimmermann, O.: Domain-driven Service Design — Context Modeling, Model Refactoring and Contract Generation. Proc. of SummerSoC 2020 conference, Springer CCIS Volume 1310 ([PDF](https://contextmapper.org/media/SummerSoC-2020_Domain-driven-Service-Design_Authors-Copy.pdf), [Presentation](https://contextmapper.org/media/Stefan-Kapferer_SummerSoC2020_presentation.pdf))
33
+
## Design Practice Repository (DPR)
31
34
32
-
<!-- plus VSS Vienna conference report by Leitner et al (Insights) -->
35
+
* DPR, available at <https://github.com/socadk/design-practice-repository> features MDSL in its Stepwise Service Design activity.
36
+
**New: *LeanPub book on [DPR](https://leanpub.com/dpr)
33
37
34
-
## Interface Definition Languages (IDLs) through the ages
35
38
36
-
* See [known uses of the API Description pattern in MAP](https://microservice-api-patterns.org/patterns/foundation/APIDescription#sec:APIDescription:KnownUses) and ICWE presentation.
39
+
# MDSL Tools
40
+
41
+
* MDSL CLI and update site:
42
+
* See [Tools Users Guide](https://microservice-api-patterns.github.io/MDSL-Specification/tools)
43
+
* Context Mapper has a MDSL generator, see [here](https://contextmapper.org/docs/mdsl/).
0 commit comments