Skip to content

Commit 226141b

Browse files
committed
Extensions: Make registration optional but encouraged
1 parent baf3376 commit 226141b

File tree

2 files changed

+64
-39
lines changed

2 files changed

+64
-39
lines changed

_format/1.1/index.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1824,18 +1824,23 @@ A profile extension is a small, separate specification that defines a set of
18241824
values that can be added to a JSON API document, and the meaning of those values
18251825
at the different places they can occur.
18261826

1827-
Each profile extension **MUST** be registered with the JSON API
1828-
[extension registry](http://jsonapi.org/extensions/), so that others can find
1829-
and reuse the extension.
1830-
1831-
Upon completing registration, each extension is assigned a [URI](https://www.ietf.org/rfc/rfc3986.txt).
1827+
A profile extension is identified by a URI [[RFC 3986](https://www.ietf.org/rfc/rfc3986.txt)].
1828+
When dereferenced, this URI **SHOULD** return documentation on the extension.
18321829

18331830
For requesting extensions and indicating those in use, the JSON API media type
18341831
defines a `profile` parameter. If present, the value of this parameter, **MUST**
18351832
be a space-separated (U+0020 SPACE, " ") list of profile extension URIs. This
18361833
list **MUST** be surrounded by quotation marks (U+0022 QUOTATION MARK, """), in
18371834
accordance with the HTTP specification.
18381835

1836+
> If no available extension fits your needs, and you decide to create your own,
1837+
> we've provided a [template](/extensions/#extension-creation-drafting)
1838+
> for formatting your extension's documentation.
1839+
1840+
> If you author an extension, you are **strongly encouraged to [register](/extensions/#extension-creation-registration)
1841+
> it** with the JSON API [extension registry](/extensions/), so that others can
1842+
> find and reuse it.
1843+
18391844
### <a href="#extending-profile-extensions-processing" id="extending-profile-extensions-processing" class="headerlink"></a> Processing Extensions
18401845

18411846
The recipient of a document **MUST** ignore any profile extensions in that

extensions/index.md

Lines changed: 54 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,24 @@ extensions provide.
1616

1717
Patience, my friend. A list of existing extensions is coming very soon.
1818

19-
## <a href="#extension-registration" id="extension-registration" class="headerlink"></a> Registering a New Extension
19+
## <a href="#extension-creation" id="extension-creation" class="headerlink"></a> Creating a New Extension
2020

21-
### <a href="#extension-registration-before" id="extension-registration-before" class="headerlink"></a> Before You Register
21+
### <a href="#extension-creation-before" id="extension-creation-before" class="headerlink"></a> Before Creating an Extension
2222

23-
Please **check whether existing extension fits your needs or could be amended
24-
to fit your needs** before registering a new extension.
23+
Please **check whether an existing extension fits your needs or could be amended
24+
to fit your needs** before developing a new extension.
2525

2626
- If a suitable extension already exists, consider using it. Having fewer, more
27-
widely-deployed extensions makes it easier to develop common tools.
27+
widely-deployed extensions makes it easier to create shared tooling.
2828

2929
- If there's an existing extension that could be amented to fit your needs,
3030
consider asking the extension's author if they would be willing to modify it as
3131
needed. Contact them through the information in their extension's registration
3232
and give them a week or two to reply.
3333

34-
### <a href="#extension-registration-template" id="extension-registration-template" class="headerlink"></a> Registration Template
34+
### <a href="#extension-creation-drafting" id="extension-creation-drafting" class="headerlink"></a> Drafting Your Extension
3535

36-
If you do decide to create a new extension, you must register it. Your extension
37-
will be **approved within a week** by one of JSON API's editors, assuming it
38-
meets the [profile extension requirements](/format/1.1/#extending-profile-extensions-characteristics).
39-
40-
To submit a registration request, simply copy the markdown template below, fill
41-
it out, and post the result as an issue on our [GitHub](https://github.com/json-api/json-api)
42-
or a new thread on our [discussion forum](http://discuss.jsonapi.org/).
36+
To author your extension, fill out the Markdown template below.
4337

4438
> \# [Your Extension Name Here]
4539
>
@@ -48,10 +42,16 @@ or a new thread on our [discussion forum](http://discuss.jsonapi.org/).
4842
>
4943
> \# (Optional) Minimum JSON API Version
5044
>
51-
> If your extension only works with certain versions of JSON API, you may note
52-
> that here. Such a restriction would be appropriate if the values your
53-
> extension defines can only be used in objects that were not present
54-
> before a certain JSON API version.
45+
> Here, note if your extension only works with certain versions of JSON API.
46+
> Such a restriction would be appropriate if the values your extension defines
47+
> can only be used in objects that were not present before a certain JSON API
48+
> version.
49+
>
50+
> \# Suggested Alias
51+
>
52+
> Put a string here that you'd like users to use as the [alias](/format/#document-aliases)
53+
> for your extension. This can make it easier for readers to recognize your
54+
> extension without having to check the URI.
5555
>
5656
> \# Specification
5757
>
@@ -71,8 +71,8 @@ or a new thread on our [discussion forum](http://discuss.jsonapi.org/).
7171
>
7272
> Make sure your extension's specification follows the
7373
> [profile extension requirements](/format/1.1/#extending-profile-extensions-characteristics)
74-
> listed in the main specification, especially those on key naming and what an
75-
> extension is not allowed to do.
74+
> listed in the main specification, especially those on what an extension is
75+
> not allowed to do.
7676
>
7777
> Finally, it is **strongly encouraged** that your extension:
7878
>
@@ -89,31 +89,51 @@ or a new thread on our [discussion forum](http://discuss.jsonapi.org/).
8989
> For this rule, JSON API recommends the text:
9090
>
9191
> <i>Recipients of a document containing this extension MUST ignore members
92-
> in this extension's data that they do not recognize.</i>
92+
> in this extension's data whose name or format they do not recognize.</i>
9393
>
94-
> \# Registrant Contact Information
94+
> \# Contact Information
9595
>
9696
> \- Name: <br />
9797
> \- Email: <br />
9898
> \- Website (Optional): <br/>
9999
> \- Phone (Optional):
100100
101-
### <a href="#extension-registration-other" id="extension-registration-other" class="headerlink"></a> Other Information
102101

103-
The community may give you feedback on your registration request before it's
104-
approved, but you are not required to act on this feedback; your extension _will_
105-
be approved if it meets the requirements.
102+
### <a href="#extension-creation-registration" id="extension-creation-registration" class="headerlink"></a> Registering/Using Your Extension
103+
104+
Once you've drafted your extension, you can either host the resulting document
105+
yourself or submit it to the JSON API extension registry. If you submit it to
106+
the registry, it will be given a URI on jsonapi.org and listed above.
107+
108+
You are _**strongly**_ encouraged to register your extension, for two reasons:
109+
110+
1. Registration allows the community to find and reuse your extension.
111+
112+
2. As part of registration, one of the JSON API's editors will review your
113+
submission to check that it satisifies the [profile extension requirements](/format/1.1/#extending-profile-extensions-characteristics).
114+
These requirements can be a bit tricky, so getting an expert review ensures
115+
that your extension is legal for use with JSON API.
116+
117+
**To submit a registration request**, just post your extension's definition
118+
(i.e., what you created by filling out the [template](#extension-creation-drafting)
119+
above) as an issue on our [GitHub](https://github.com/json-api/json-api) or a
120+
new thread on our [discussion forum](http://discuss.jsonapi.org/).
121+
122+
Your submission will be **approved within a week** by one of JSON API's editors,
123+
assuming it meets the [profile extension requirements](/format/1.1/#extending-profile-extensions-characteristics)
124+
and follows the template above. The community may give you feedback on your
125+
submission before it's approved, but you are not required to act on this feedback.
106126

107-
One caveat about the process and timeline outlined above: if your extension
108-
defines a new, fundamental mechanism for doing something "architectural" that
109-
other extensions may need to do too, it may be held for extra consideration.
110-
This extra review is designed to check that the proposed mechanism, were it to
111-
become a convention, wouldn't have problematic ramifications.
127+
One caveat: if your extension defines a new, fundamental mechanism for doing
128+
something "architectural" that other extensions may need to do too, it may be
129+
held for extra consideration. This extra review is designed to check that the
130+
proposed mechanism, were it to become a convention, wouldn't have problematic
131+
ramifications.
112132

113-
Finally, if the author of an extension has died, moved out of contact, or
114-
otherwise can't or won't make changes that are important to the community, the
115-
JSON API editors may reassign responsibility for the extension, to allow it to
116-
continue to evolve.
133+
Finally, if the author of a registered extension dies, moves out of contact,
134+
or otherwise can't or won't make changes that are important to the community,
135+
the JSON API editors may reassign responsibility for the extension, to allow it
136+
to continue to evolve.
117137

118138
## <a href="#prior-extensions" id="prior-extensions" class="headerlink"></a> Prior Extensions
119139

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy