Self Study 2: A Complete Guide through MAP

In this self study you apply the MAPs to design and improve an API in a realistic sample system landscape in five steps.

Tutorial 2 Tutorials Overview

Time estimate: You should be able to complete this self study in 60 to 90 minutes.

Assignment

Task: Repeat steps 1 to 5 of Tutorial 2 for the policy management context and API. Start from the following user story:

“As a back office staff member at LM, I would like to be able to create, read, update, and delete insurance offers (quotations) for prospective clients so that the business can grow and customers and call center agents see the same consistent data when processing requests for quotations.”

Assume that an API between a back office frontend and the contract management backend is required. Also assume that a domain model and some Nonfunctional Requirements (NFRs) including quality attributes have been specified.

Solution

Available upon request. Contact us!

Repetition Questions

Questions about MAP and this Tutorial

To test your knowledge, you may want to answer the following questions:

  1. What are the six pattern categories in MAP?
  2. Which input does API design typically start from (according to this tutorial)?
  3. Why does it make sense to start with a pattern-oriented API design before diving into technology details?

Questions about I(dentification) and F(oundation) (Step 1)

  1. How are analysis-level artifacts such as domain models and business process models related to API design?
  2. Which two dimensions of API scoping were featured in Step 1.2 of this exercise?
  3. What is the purpose of a Candidate Endpoint List?

Questions about R(esponsibility) (Step 2)

  1. Which endpoint types are defined in MAP?
  2. Why are Information Holder Resources seen as anti patterns by some, but still frequently used?
  3. Which processing types cause the endpoints/services to be stateful, and which ones support the desire for statelessness?

Questions about S(tructure) (Step 3)

  1. Which pattern describes how to slice responses? Why and when is this useful, and what are reasons not to apply the pattern?
  2. What is the pendant of a Parameter Tree in JSON?
  3. How can an Atomic Parameter be represented in an HTTP GET request?

Questions about Q(uality) (Step 4)

  1. Which patterns for quality management and governance are currently defined in MAP?
  2. Which forces is the designer of an API Key confronted with?
  3. Which problem does a Wish List solve and which pattern(s) can be used alternatively to solve this problem?

Questions about E(volution) (Step 5)

  1. Which quality attributes does service evolution have to balance?
  2. Which pattern describes a rolling release strategy?
  3. When following the guidelines of Semantic Versioning, should Version 1.1 and Version 1.2 be compatible or not?

Answers to Questions

Available upon request. Contact us!