@@ -559,22 +559,15 @@ related resource collection:
559
559
#### <a href =" #profile-links " id =" profile-links " class =" headerlink " ></a > Profile Links
560
560
561
561
Like all [ links] [ link ] , a link in an array of ` profile ` links can be represented
562
- with a [ link object] . In that case, the link object ** MAY** contain an ` aliases `
563
- member listing any [ profile aliases] .
562
+ with a [ link object] .
564
563
565
- Here, the ` profile ` key specifies an array of ` profile ` links, including one
566
- that includes a [ profile alias] [ profile aliases ] :
564
+ Here, the ` profile ` key specifies an array of ` profile ` links:
567
565
568
566
``` json
569
567
"links" : {
570
568
"profile" : [
571
569
" http://example.com/profiles/flexible-pagination" ,
572
- {
573
- "href" : " http://example.com/profiles/resource-versioning" ,
574
- "aliases" : {
575
- "version" : " v"
576
- }
577
- }
570
+ " http://example.com/profiles/resource-versioning"
578
571
]
579
572
}
580
573
```
@@ -2025,19 +2018,18 @@ https://example.com/?page[cursor]=xyz&profile=https://example.com/pagination-pro
2025
2018
```
2026
2019
2027
2020
2028
- ### <a href =" #profile-keywords-and-aliases " id =" profile-keywords-and-aliases " class =" headerlink " ></a > Profile Keywords and Aliases
2021
+ ### <a href =" #profile-keywords " id =" profile-keywords " class =" headerlink " ></a > Profile Keywords
2029
2022
2030
2023
A profile ** SHOULD** explicitly declare "keywords" for any elements that it
2031
2024
introduces to the document structure. If a profile does not explicitly declare a
2032
2025
keyword for an element, then the name of the element itself (i.e., its key in
2033
2026
the document) is considered to be its keyword. All profile keywords ** MUST**
2034
2027
meet this specification's requirements for [ member names] .
2035
2028
2036
- For the purposes of aliasing, a profile's elements are defined shallowly.
2037
2029
In other words, if a profile introduces an object-valued document member, that
2038
- member is an element (and so subject to aliasing) , but any keys in it are not
2039
- themselves elements. Likewise, if the profile defines an array-valued element,
2040
- the keys in nested objects within that array are not elements.
2030
+ member is an element, but any keys in it are not themselves elements. Likewise,
2031
+ if the profile defines an array-valued element, the keys in nested objects
2032
+ within that array are not elements.
2041
2033
2042
2034
The following example profile defines a single keyword, ` version ` :
2043
2035
@@ -2085,42 +2077,6 @@ This profile might be applied as follows:
2085
2077
}
2086
2078
```
2087
2079
2088
- Documents that apply a particular profile ** MAY** represent each keyword with an
2089
- alternatively named member, or "alias". An alias fully assumes any meaning
2090
- specified for a keyword, which no longer retains that meaning. Any aliases
2091
- associated with a profile ** MUST** be represented in the profile's corresponding
2092
- ` aliases ` object within its [ link object] [ links ] . The key of each alias ** MUST**
2093
- be a keyword from the profile, and the value ** MUST** be an alias that applies
2094
- to this particular representation. This aliasing mechanism allows profiles to be
2095
- applied in a way that is both consistent with the rest of the representation and
2096
- does not conflict with other profiles.
2097
-
2098
- For instance, the following document provides an alias for ` version ` : ` v ` .
2099
- Interpreters of this representation should treat the key ` v ` as if it were the
2100
- key ` version ` described in the profile:
2101
-
2102
- ``` json
2103
- {
2104
- "data" : {
2105
- "type" : " contacts" ,
2106
- "id" : " 345" ,
2107
- "meta" : {
2108
- "v" : " 2018-04-14-879976658"
2109
- },
2110
- "attributes" : {
2111
- "name" : " Ethan"
2112
- }
2113
- },
2114
- "links" : {
2115
- "profile" : [{
2116
- "href" : " http://example.com/profiles/resource-versioning" ,
2117
- "aliases" : {
2118
- "version" : " v"
2119
- }
2120
- }]
2121
- }
2122
- }
2123
- ```
2124
2080
2125
2081
### <a href =" #profiles-processing " id =" profiles-processing " class =" headerlink " ></a > Processing Profiled Documents/Requests
2126
2082
@@ -2284,8 +2240,7 @@ that "The elements... specified by a profile... **MUST NOT** change over time."
2284
2240
2285
2241
> The practical issue with adding a sibling element is that another profile
2286
2242
> in use on the document might already define a sibling element of the same
2287
- > name, and existing documents would not have any aliases defined to resolve
2288
- > this conflict.
2243
+ > name.
2289
2244
2290
2245
However, the timestamps profile could evolve to allow other optional members,
2291
2246
such as ` deleted ` , in the ` timestamps ` object. This is possible because the
@@ -2432,7 +2387,7 @@ request as equivalent to one in which the square brackets were percent-encoded.
2432
2387
[ link object ] : #document-links-link-object
2433
2388
[ profiles ] : #profiles
2434
2389
[ timestamps profile ] : #profiles-timestamp-profile
2435
- [ profile aliases ] : #profile-keywords-and-aliases
2390
+ [ profile keywords ] : #profile-keywords
2436
2391
[ error details ] : #errors
2437
2392
[ error object ] : #error-objects
2438
2393
[ error objects ] : #errror-objects
0 commit comments