Skip to content

Commit f9d8287

Browse files
authored
chore: add links between AEPs (#327)
* chore: add links between AEPs * fix: add missing link
1 parent 26f3e7a commit f9d8287

9 files changed

Lines changed: 50 additions & 35 deletions

File tree

aep/general/0001/aep.md.j2

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Companies **may** adopt the AEP system in one of two ways:
3333
Companies with an already-established corpus of services are unlikely to have
3434
exactly followed the guidance at [aep.dev][]. Forking the system is valuable
3535
because the guidance becomes comparable. Forks **must** retain the same
36-
numbering system (AEP-2) to provide that comparability.
36+
numbering system [AEP-2][aep-2] to provide that comparability.
3737

3838
### Technical leadership
3939

@@ -219,3 +219,4 @@ approved, will replace the old one. The old one then enters "Replaced" state,
219219
and will link to the new, current AEP.
220220

221221
[aep.dev]: https://aep.dev/
222+
[aep-2]: ./0002.md

aep/general/0127/aep.md.j2

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ rpc CreateBook(CreateBookRequest) returns (Book) {
121121

122122
<!-- prettier-ignore-start -->
123123
[json encoding]: https://developers.google.com/protocol-buffers/docs/proto3#json
124+
[resources]: ./0121.md
124125
[rpc]: https://en.wikipedia.org/wiki/Remote_procedure_call
125126
[google.api.http]: https://buf.build/googleapis/googleapis/docs/main:google.api#google.api.Http
126127
<!-- prettier-ignore-end -->

aep/general/0131/aep.md.j2

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ In REST APIs, it is customary to make a `GET` request to a resource's URI (for
44
example, `/v1/publishers/{publisher_id}/books/{book_id}`) in order to retrieve
55
that resource.
66

7-
Resource-oriented design (AEP-121) honors this pattern through the `Get`
8-
method. These RPCs accept the URI representing that resource and return the
9-
resource.
7+
Resource-oriented design [AEP-121][aep-121] honors this pattern through the
8+
`Get` method. These RPCs accept the URI representing that resource and return
9+
the resource.
1010

1111
## Guidance
1212

@@ -142,3 +142,5 @@ exist, the service **must** reply with an HTTP 404 error.
142142
{% sample '../example.oas.yaml', '$.paths./publishers/{publisher_id}/books/{book_id}.get' %}
143143

144144
{% endtabs %}
145+
146+
[aep-121]: ./0121.md

aep/general/0132/aep.md.j2

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ In REST APIs, it is customary to make a `GET` request to a resource
44
collection's URI (for example, `/publishers/{publisher_id}/books`) in order to
55
retrieve a list of the resources within that collection.
66

7-
Resource-oriented design (AEP-121) honors this pattern through the `List`
8-
method. These RPCs accept a parent collection (if one exists), and return a
9-
list of responses matching that input.
7+
Resource-oriented design [AEP-121][aep-121] honors this pattern through the
8+
`List` method. These RPCs accept a parent collection (if one exists), and
9+
return a list of responses matching that input.
1010

1111
## Guidance
1212

@@ -221,5 +221,6 @@ soft-deleted resources to be included.
221221
[reading across collections]: ./0159
222222
[soft-delete]: ./0164
223223
[resource type]: ./0123
224+
[aep-121]: ./0121
224225
[aep-203]: ./0203
225226
<!-- prettier-ignore-end -->

aep/general/0133/aep.md.j2

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ In REST APIs, it is customary to make a `POST` request to a collection's URI
44
(for example, `/v1/publishers/{publisher_id}/books`) in order to create a new
55
resource within that collection.
66

7-
Resource-oriented design (AEP-121) honors this pattern through the `Create`
8-
method. These RPCs accept the parent collection if one exists, and the resource
9-
to create (and potentially some other parameters), and return the created
10-
resource.
7+
Resource-oriented design [AEP-121][aep-121] honors this pattern through the
8+
`Create` method. These RPCs accept the parent collection if one exists, and the
9+
resource to create (and potentially some other parameters), and return the
10+
created resource.
1111

1212
## Guidance
1313

aep/general/0134/aep.md.j2

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ In REST APIs, it is customary to make a `PATCH` or `PUT` request to a
44
resource's URI (for example, `/v1/publishers/{publisher_id}/books/{book_id}`)
55
in order to update that resource.
66

7-
Resource-oriented design (AEP-121) honors this pattern through the `Update`
8-
method (which mirrors the REST `PATCH` behavior). These methods accept the URI
9-
representing that resource and return the resource.
7+
Resource-oriented design [AEP-121][aep-121] honors this pattern through the
8+
`Update` method (which mirrors the REST `PATCH` behavior). These methods accept
9+
the URI representing that resource and return the resource.
1010

1111
Also see the [apply](/apply) method, with guidance on how to implement `PUT`
1212
requests.

aep/general/0136/aep.md.j2

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Custom methods
22

3-
Resource oriented design (AEP-121) uses custom methods to provide a means to
4-
express actions that are difficult to model using only the standard methods.
5-
Custom methods are important because they provide a means for an API's
3+
Resource oriented design [AEP-121][aep-121] uses custom methods to provide a
4+
means to express actions that are difficult to model using only the standard
5+
methods. Custom methods are important because they provide a means for an API's
66
vocabulary to adhere to user intent.
77

88
## Guidance
@@ -131,6 +131,7 @@ around state management to determine when the custom method should be invoked.
131131
AEP's supported declarative clients cannot support custom methods.
132132

133133
<!-- prettier-ignore-start -->
134+
[aep-121]: ./0121.md
134135
[rfc 5789]: https://datatracker.ietf.org/doc/html/rfc5789
135136
[rfc 7231 section 4.2.1]: https://datatracker.ietf.org/doc/html/rfc7231#section-4.2.1
136137
[rfc 7231 section 4.3]: https://datatracker.ietf.org/doc/html/rfc7231#section-4.3

aep/general/0164/aep.md.j2

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ updated resource instead of `204 No Content`.
1717

1818
Resources that support soft delete **should** have an `expire_time` field as
1919
described in AEP-148. Additionally, resources **should** include a `DELETED`
20-
state value if the resource includes a `state` field (AEP-216).
20+
state value if the resource includes a `state` field [AEP-216][aep-216].
2121

2222
### Undelete
2323

@@ -64,28 +64,28 @@ A resource that supports soft delete **should** provide an `Undelete` method:
6464

6565
Some resources take longer to undelete a resource than is reasonable for a
6666
regular API request. In this situation, the API **should** follow the
67-
long-running request pattern (AEP-151).
67+
long-running request pattern [AEP-151][aep-151].
6868

6969
### List and Get
7070

71-
Soft-deleted resources **should not** be returned in `List` (AEP-132) responses
72-
by default (unless `bool show_deleted` is true).
71+
Soft-deleted resources **should not** be returned in `List` [AEP-132][aep-132]
72+
responses by default (unless `bool show_deleted` is true).
7373

74-
A `Get` (AEP-131) request for a soft deleted resource **should** error with
75-
`410 Gone` unless `bool show_deleted` is true, in which case soft-deleted
74+
A `Get` [AEP-131][aep-131] request for a soft deleted resource **should** error
75+
with `410 Gone` unless `bool show_deleted` is true, in which case soft-deleted
7676
resources **must** return the resource.
7777

7878
Services that soft delete resources **may** choose a reasonable strategy for
7979
purging those resources, including automatic purging after a reasonable time
80-
(such as 30 days), allowing users to set an expiry time (AEP-214), or retaining
81-
the resources indefinitely. Regardless of what strategy is selected, the
82-
service **should** document when soft deleted resources will be completely
80+
(such as 30 days), allowing users to set an expiry time [AEP-214][aep-214], or
81+
retaining the resources indefinitely. Regardless of what strategy is selected,
82+
the service **should** document when soft deleted resources will be completely
8383
removed.
8484

8585
### Declarative-friendly resources
8686

87-
A resource that is declarative-friendly (AEP-128) **should** support soft
88-
delete and undelete.
87+
A resource that is declarative-friendly [AEP-128][aep-128] **should** support
88+
soft delete and undelete.
8989

9090
**Important:** There is an ambiguity in declarative tooling between "create"
9191
and "undelete". When given an alias which was previously deleted and a
@@ -100,8 +100,8 @@ Declarative-friendly resources **must** use long-running operations for both
100100
soft delete and undelete. The service **may** return an LRO that is already set
101101
to done if the request is effectively immediate.
102102

103-
Declarative-friendly resources **must** include `validate_only` (AEP-163) and
104-
`etag` (AEP-154) in their `Undelete` methods.
103+
Declarative-friendly resources **must** include `validate_only`
104+
[AEP-163][aep-163] and `etag` [AEP-154][aep-154] in their `Undelete` methods.
105105

106106
### Errors
107107

@@ -123,9 +123,17 @@ resource is not deleted, the service **must** error with `409 Conflict`.
123123

124124
## Further reading
125125

126-
- For the `Delete` standard method, see AEP-135.
127-
- For long-running operations, see AEP-151.
128-
- For resource freshness validation (`etag`), see AEP-154.
129-
- For change validation (`validate_only`), see AEP-163.
126+
- For the `Delete` standard method, see [AEP-135][aep-135].
127+
- For long-running operations, see [AEP-151][aep-151].
128+
- For resource freshness validation (`etag`), see [AEP-154][aep-154].
129+
- For change validation (`validate_only`), see [AEP-163][aep-163].
130130

131131
[aep-4]: ./0004.md
132+
[aep-128]: ./0128.md
133+
[aep-131]: ./0131.md
134+
[aep-135]: ./0135.md
135+
[aep-151]: ./0151.md
136+
[aep-154]: ./0154.md
137+
[aep-163]: ./0163.md
138+
[aep-214]: ./0214.md
139+
[aep-216]: ./0216.md

aep/general/0193/aep.md.j2

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,13 +148,14 @@ does not exist, the service **must** error with `NOT_FOUND` (HTTP 404).
148148
## Further reading
149149

150150
- [RFC 9457 Problem Details for HTTP APIs][RFC 9457]
151-
- For which error codes to retry, see [AEP-194](https://aep.dev/194).
151+
- For which error codes to retry, see [AEP-194][aep-194].
152152

153153
## Changelog
154154

155155
- **2024-03-21**: Adopt from https://google.aip.dev/193
156156

157157
<!-- prettier-ignore-start -->
158+
[aep-194]: ./194.md
158159
[RFC 9457]: https://datatracker.ietf.org/doc/html/rfc9457
159160
[grpc status code documentation]: https://github.com/grpc/grpc/blob/master/doc/statuscodes.md
160161
[Code]: https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto

0 commit comments

Comments
 (0)