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