Skip to content

Commit 889e5dc

Browse files
removed space in image links
1 parent 445c931 commit 889e5dc

File tree

4 files changed

+39
-39
lines changed

4 files changed

+39
-39
lines changed

md/findings-report.md

+28-28
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ considering this response they would not react appropriate to the response. If t
1313
`200` or a `404`, they would not have considered `202` and following the `location` header after waiting the amount of time
1414
suggested by the `retry-after` header. That is why this is considered a breaking change.
1515

16-
![202 as breaking change to the API] (../sample-reports/202_added_breaking.png)
16+
![202 as breaking change to the API](../sample-reports/202_added_breaking.png)
1717

1818
The `202` may be a response that services needs to introduce, if e.g. the time it takes to complete the response increases
1919
over time due to whatever reasons, it could be a creation of information that due to changes in legislation takes longer.
@@ -27,50 +27,50 @@ back, the client would not be ready to react by following the `location` header
2727
Adding a `301` and `307` to your API makes it easier to move endpoints and having that as a part of your Open API
2828
specification may be worth considering.
2929

30-
![301 as breaking change to the API] (../sample-reports/301_added_good_pot-breaking.png)
30+
![301 as breaking change to the API](../sample-reports/301_added_good_pot-breaking.png)
3131

32-
![307 as breaking change to the API] (../sample-reports/307_added_pot-breaking.png)
32+
![307 as breaking change to the API](../sample-reports/307_added_pot-breaking.png)
3333

3434
Having an existing API ` (!) ` where a `301` or `307` is not defined is therefore reported as something you evaluate if yu want
3535
to include in your API or not.
3636

37-
![301 missing in the existing API is a breaking change waiting to happen] (../sample-reports/301_missing_pot-break.png)
37+
![301 missing in the existing API is a breaking change waiting to happen](../sample-reports/301_missing_pot-break.png)
3838

3939
Having the ability to offer a "service" to clients where they can ask if the need to re-read a resource or whether the
4040
client still has a valid version of the resource is the reason for including `304` in the potentially breaking part.
4141
Therefore an existing API without `304` might want to be extended with that, the reason for it being perceived as
4242
breaking is a scalability perspective as this can allow som services (having resources with a non-realtime character)
4343
to scale higher (or have a lower operational cost for the same load).
4444

45-
![304 missing in the existing API is a potential for offloading services] (../sample-reports/304_missing_pot-break.png)
45+
![304 missing in the existing API is a potential for offloading services](../sample-reports/304_missing_pot-break.png)
4646

4747
The most frequent used responses are probably `200` and `404`, failing to have these as a part of the existing API or the
4848
new is considered a potential breaking change.
4949

50-
![404 missing in the API is a potential break] (../sample-reports/404_missing_pot-break.png)
50+
![404 missing in the API is a potential break](../sample-reports/404_missing_pot-break.png)
5151

5252
If the `200` is added to the new API it needs to include som headers like `X-Log-Token` to enable clients to refer to
5353
incidents in a way of their choosing and in that way handle bugs etc. more efficient, here the some headers concerning
5454
rate limits are added as required by the service in the new version of the API, which makes a lot of sense, as they are
5555
required this is considered a breaking change to the new API.
5656

57-
![200 missing in the API is a potential break] (../sample-reports/200_limit-breaking.png)
57+
![200 missing in the API is a potential break](../sample-reports/200_limit-breaking.png)
5858

5959
If a client sets the `Accept` header to a content-type unknown to the server, some services are responding with a `400`,
6060
whereas the `415` seems more appropriate for this situation, in order to avoid breaking the API when introducing this
6161
response code later it seems like a good and sound idea to include this from the start.
6262

63-
![415 missing in the existing API is a potential break waiting to happen] (../sample-reports/415_missing_pot-break.png)
63+
![415 missing in the existing API is a potential break waiting to happen](../sample-reports/415_missing_pot-break.png)
6464

6565
Including a number of responses from the start seems to worth considering, which is why a number of these are considered
6666
potential breaks, se below.
6767

68-
![429 missing in the existing API is a potential break waiting to happen] (../sample-reports/429_missing_pot-break.png)
68+
![429 missing in the existing API is a potential break waiting to happen](../sample-reports/429_missing_pot-break.png)
6969

7070
Not having this as a part of your API means you cannot ask client politely to back off for
7171
a while (specified in the `retry-after`) header
7272

73-
![412 missing in the existing API is a more precise way to signal pre-conditional errors to clients] (../sample-reports/412_missing_pot-break.png)
73+
![412 missing in the existing API is a more precise way to signal pre-conditional errors to clients](../sample-reports/412_missing_pot-break.png)
7474

7575
This is a more specific error in the event of validation errors, in many situations the `400` is used and it may, the
7676
`412` is a little more precise for pre-conditional validation issues. `400` is considered as one of the mandatory alongside
@@ -81,7 +81,7 @@ How long must you remember an endpoint, if you did not have the `301` or `307` s
8181
endpoints and you know that you want to be able to terminate a given endpoint someday somehow. This is where `410` comes
8282
into the picture:
8383

84-
![410 missing in the existing API is a potential break waiting to happen] (../sample-reports/410_missing_pot-break.png)
84+
![410 missing in the existing API is a potential break waiting to happen](../sample-reports/410_missing_pot-break.png)
8585

8686
This is arguable whether this should be a mandatory response in every endpoint in a service or not, it is however worth
8787
considering whether it is something you need. If not specified, the contracts and terms for bringing an endpoint down
@@ -91,20 +91,20 @@ The `505` response is making ready for the next version of HTTP, so it is kind o
9191
endpoints down or can you cease the support for a given version of content, of API structure and how to do that using
9292
HTTP response code and other mechanisms to do it in a way that the clients can understand and follow.
9393

94-
![505 missing in the existing API is a potential break waiting to happen] (../sample-reports/505_missing_pot-break.png)
94+
![505 missing in the existing API is a potential break waiting to happen](../sample-reports/505_missing_pot-break.png)
9595

9696
The error handling from the services side are usually done by 500 and possibly 503 and thus they must be part of the
9797
responses that any endpoint can return.
9898

99-
![500 missing in the existing API is a potential break waiting to happen] (../sample-reports/500_missing_pot-break.png)
99+
![500 missing in the existing API is a potential break waiting to happen](../sample-reports/500_missing_pot-break.png)
100100

101-
![503 missing in the existing API is a potential break waiting to happen] (../sample-reports/503_missing_pot-break.png)
101+
![503 missing in the existing API is a potential break waiting to happen](../sample-reports/503_missing_pot-break.png)
102102

103103
The `503` is suggested having a `retry-after` header to signal back to the client when the service is expected to be
104104
available again, the aim of that is that clients can use this for information to the application user and thus informing
105105
the users to prepare the user for this situation the best the client can.
106106

107-
![503 retry-after header is required] (../sample-reports/503_added_required_header-breaking.png)
107+
![503 retry-after header is required](../sample-reports/503_added_required_header-breaking.png)
108108

109109
Adding that header and make it required is a potentially breaking thing as clients may not do anything about the header
110110
and thus the service downtime (or slow performance) may continue. Again here you could argue that this type of header
@@ -116,52 +116,52 @@ e.g. with a certified level according to a given Open API Diff profile.
116116
The response code regarding authorization and access `401` and `403` must be part of any protected API and thus they
117117
are included in the mandatory set of responses here.
118118

119-
![401 missing in the existing API is a potential break waiting to happen] (../sample-reports/401_missing_pot-break.png)
119+
![401 missing in the existing API is a potential break waiting to happen](../sample-reports/401_missing_pot-break.png)
120120

121121

122122
The elaborated part of the reports attempt to state a few words on the observation:
123123

124-
![The elaborated report on responses] (../sample-reports/addedResponsesChange.png)
124+
![The elaborated report on responses](../sample-reports/addedResponsesChange.png)
125125

126126
and
127127

128-
![The elaborated report on responses] (../sample-reports/Compliance_Responses_Change.png)
128+
![The elaborated report on responses](../sample-reports/Compliance_Responses_Change.png)
129129

130130

131131
On top of that there are som even more opinionated parts, such as the parts on using content-types as versioning
132132
mechanism for content in endpoints:
133133

134-
![The elaborated report on content types] (../sample-reports/Compliance_ContentTypes.png)
134+
![The elaborated report on content types](../sample-reports/Compliance_ContentTypes.png)
135135

136-
![The elaborated report on content types projection added] (../sample-reports/projectionAdded.png)
136+
![The elaborated report on content types projection added](../sample-reports/projectionAdded.png)
137137

138138

139139
And concrete observations like:
140140

141-
![The elaborated report on content types] (../sample-reports/descriptionExtended-pot-break.png)
141+
![The elaborated report on content types](../sample-reports/descriptionExtended-pot-break.png)
142142

143-
![The elaborated report on content types] (../sample-reports/header_pattern_changed-pot-break.png)
143+
![The elaborated report on content types](../sample-reports/header_pattern_changed-pot-break.png)
144144

145-
![The elaborated report on content types] (../sample-reports/ResponseCode_200_changes.png)
145+
![The elaborated report on content types](../sample-reports/ResponseCode_200_changes.png)
146146

147-
![The elaborated report on content types] (../sample-reports/property_changed_to_required.png)
147+
![The elaborated report on content types](../sample-reports/property_changed_to_required.png)
148148

149149
And:
150150

151-
![The elaborated report on header changes] (../sample-reports/descriptionExtended-pot-break.png)
151+
![The elaborated report on header changes](../sample-reports/descriptionExtended-pot-break.png)
152152

153-
![The elaborated report on path parameter changes] (../sample-reports/projectionAdded.png)
153+
![The elaborated report on path parameter changes](../sample-reports/projectionAdded.png)
154154

155155
And suggested improvements to the existing design - here in the form of suggesting that null is not a good definition
156156
to have in the API, because it creates uncertainty going forward with your design and the greater the number of client
157157
the services have the larger the risk for various interpretations of a given set of input or output and thus the service
158158
developers themselves are less clear on what the clients may experience as a result of a change.
159159

160-
![The elaborated report on content types] (../sample-reports/designImprovement.png)
160+
![The elaborated report on content types](../sample-reports/designImprovement.png)
161161

162162
And:
163163

164-
![The elaborated report on content types] (../sample-reports/pattern_from_null_pot-break.png)
164+
![The elaborated report on content types](../sample-reports/pattern_from_null_pot-break.png)
165165

166166
## Opinionated parts
167167
The opinionated parts are:

md/html-report.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,20 @@ A with a bit of explanation to each of the screenshots will follow:
55

66
## Introduction
77

8-
![HTML Intro] (../sample-reports/HTML-Intro.png)
8+
![HTML Intro](../sample-reports/HTML-Intro.png)
99

1010
The introductory part of the report is to state what is going to be in the report and how the notation of the report
1111
should be understood.
1212

1313
## The Quick Overview
1414

15-
![HTML Overview] (../sample-reports/HTML-Overview.png)
15+
![HTML Overview](../sample-reports/HTML-Overview.png)
1616

1717
The overview section gives a highlevel overview over what has happened as "The Big Picture" perspective
1818

1919
## Elaboration on Changed Parts
2020

21-
![HTML Elaborated Change] (../sample-reports/HTML-Elaborated-Change.png)
21+
![HTML Elaborated Change](../sample-reports/HTML-Elaborated-Change.png)
2222

2323
The elaborated section gives a more detailed overview over what has happened and what is the issues found that leads to
2424
breaking situations that will disturb the clients (user of the service) and the potentially breaking situations, that
@@ -28,7 +28,7 @@ and deployment speed for the service developers.
2828

2929
## Elaboration on Opinionated Compliance
3030

31-
![HTML Elaborated Compliance] (../sample-reports/HTML-Elaborated-Compliance.png)
31+
![HTML Elaborated Compliance](../sample-reports/HTML-Elaborated-Compliance.png)
3232

3333
The elaborated section including every observation found to be of interest in relation to compliance to the opinionated
3434
view on APIs that should be easy to evolve.

md/markdown-report.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ A with a bit of explanation to each of the screenshots will follow:
66

77
## The Introduction and Quick Overview
88

9-
![Markdown Intro and Overview] (../sample-reports-reports/MD-Intro.png)
9+
![Markdown Intro and Overview](../sample-reports/MD-Intro.png)
1010

1111
The introductory part of the report is to state what is going to be in the report and how the notation of the report
1212
should be understood. The Overview section gives a highlevel overview over what has happened as "The Big Picture" perspective.
1313

1414
## Elaboration on Changed Parts
1515

16-
![Markdown Elaborated Change] (../sample-reports/MD-Elaborated-Change.png)
16+
![Markdown Elaborated Change](../sample-reports/MD-Elaborated-Change.png)
1717

1818
The elaborated section gives a more detailed overview over what has happened and what is the issues found that leads to
1919
breaking situations that will disturb the clients (user of the service) and the potentially breaking situations, that
@@ -23,7 +23,7 @@ and deployment speed for the service developers.
2323

2424
## Elaboration on Opinionated Compliance
2525

26-
![Markdown Elaborated Compliance] (../sample-reports/MD-Elaborated-Compliance.png)
26+
![Markdown Elaborated Compliance](../sample-reports/MD-Elaborated-Compliance.png)
2727

2828
The elaborated section including every observation found to be of interest in relation to compliance to the opinionated
2929
view on APIs that should be easy to evolve.

md/text-report.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ A with a bit of explanation to each of the screenshots will follow:
77

88
## The Introduction and Quick Overview
99

10-
![Console Intro and Overview] (../sample-reports/CONSOLE-IntroAndOverview.png)
10+
![Console Intro and Overview](../sample-reports/CONSOLE-IntroAndOverview.png)
1111

1212
The introductory part of the report is to state what is going to be in the report and how the notation of the report
1313
should be understood. The Overview section gives a highlevel overview over what has happened as "The Big Picture" perspective.
1414

1515
## Elaboration on Changed Parts
1616

17-
![Console Elaborated Change] (../sample-reports/CONSOLE-Elaborated-Change.png)
17+
![Console Elaborated Change](../sample-reports/CONSOLE-Elaborated-Change.png)
1818

1919
The elaborated section gives a more detailed overview over what has happened and what is the issues found that leads to
2020
breaking situations that will disturb the clients (user of the service) and the potentially breaking situations, that
@@ -24,13 +24,13 @@ and deployment speed for the service developers.
2424

2525
## Elaboration on Opinionated Compliance
2626

27-
![Console Elaborated Compliance] (../sample-reports/CONSOLE-Elaborated-Compliance.png)
27+
![Console Elaborated Compliance](../sample-reports/CONSOLE-Elaborated-Compliance.png)
2828

2929
The elaborated section including every observation found to be of interest in relation to compliance to the opinionated
3030
view on APIs that should be easy to evolve.
3131
The observations are breaking, potentially breaking, changes and suggested improvements to the service design as well as
3232
details for the headers, parameters, properties, content-types, responses.
3333

34-
![Text Intro and Overview] (../sample-reports/TXT-IntroAndOverview.png)
34+
![Text Intro and Overview](../sample-reports/TXT-IntroAndOverview.png)
3535

3636
Will display the same as the console part, with the console coloring filtered.

0 commit comments

Comments
 (0)