Skip to content

Commit f1b9cb3

Browse files
committed
Improve methods
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
1 parent d57c8fb commit f1b9cb3

2 files changed

Lines changed: 53 additions & 27 deletions

File tree

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,39 @@
11
{
22
"$schema": "https://json-schema.org/draft/2020-12/schema",
3-
"title": "RFC 9110 HTTP Standard Method",
4-
"description": "An HTTP request method explicitly defined in RFC 9110 section 9 (case-sensitive)",
3+
"title": "IETF HTTP Standard Method",
4+
"description": "An HTTP request method explicitly defined in IETF RFCs (case-sensitive)",
55
"$comment": "https://www.rfc-editor.org/rfc/rfc9110#section-9.3",
6-
"examples": [ "GET", "POST", "PUT" ],
6+
"examples": [ "GET", "POST", "PUT", "PATCH" ],
77
"x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE",
8-
"enum": [
9-
"GET",
10-
"HEAD",
11-
"POST",
12-
"PUT",
13-
"DELETE",
14-
"CONNECT",
15-
"OPTIONS",
16-
"TRACE"
8+
"anyOf": [
9+
{
10+
"$comment": "https://www.rfc-editor.org/rfc/rfc9110#section-9.3",
11+
"enum": [
12+
"GET",
13+
"HEAD",
14+
"POST",
15+
"PUT",
16+
"DELETE",
17+
"CONNECT",
18+
"OPTIONS",
19+
"TRACE"
20+
]
21+
},
22+
{
23+
"$comment": "https://www.rfc-editor.org/rfc/rfc5789",
24+
"const": "PATCH"
25+
},
26+
{
27+
"$comment": "https://www.rfc-editor.org/rfc/rfc4918",
28+
"enum": [
29+
"PROPFIND",
30+
"PROPPATCH",
31+
"MKCOL",
32+
"COPY",
33+
"MOVE",
34+
"LOCK",
35+
"UNLOCK"
36+
]
37+
}
1738
]
1839
}

tests/ietf/http/method-standard.test.json

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -128,43 +128,48 @@
128128
"valid": false
129129
},
130130
{
131-
"description": "Invalid - extension method PATCH",
131+
"description": "Valid - PATCH (RFC 5789)",
132132
"data": "PATCH",
133-
"valid": false
133+
"valid": true
134134
},
135135
{
136-
"description": "Invalid - extension method PROPFIND",
136+
"description": "Valid - PROPFIND (RFC 4918)",
137137
"data": "PROPFIND",
138-
"valid": false
138+
"valid": true
139139
},
140140
{
141-
"description": "Invalid - extension method PROPPATCH",
141+
"description": "Valid - PROPPATCH (RFC 4918)",
142142
"data": "PROPPATCH",
143-
"valid": false
143+
"valid": true
144144
},
145145
{
146-
"description": "Invalid - extension method MKCOL",
146+
"description": "Valid - MKCOL (RFC 4918)",
147147
"data": "MKCOL",
148-
"valid": false
148+
"valid": true
149149
},
150150
{
151-
"description": "Invalid - extension method COPY",
151+
"description": "Valid - COPY (RFC 4918)",
152152
"data": "COPY",
153-
"valid": false
153+
"valid": true
154154
},
155155
{
156-
"description": "Invalid - extension method MOVE",
156+
"description": "Valid - MOVE (RFC 4918)",
157157
"data": "MOVE",
158-
"valid": false
158+
"valid": true
159159
},
160160
{
161-
"description": "Invalid - extension method LOCK",
161+
"description": "Valid - LOCK (RFC 4918)",
162162
"data": "LOCK",
163-
"valid": false
163+
"valid": true
164164
},
165165
{
166-
"description": "Invalid - extension method UNLOCK",
166+
"description": "Valid - UNLOCK (RFC 4918)",
167167
"data": "UNLOCK",
168+
"valid": true
169+
},
170+
{
171+
"description": "Invalid - lowercase patch",
172+
"data": "patch",
168173
"valid": false
169174
},
170175
{

0 commit comments

Comments
 (0)