diff --git a/AUTHORS b/AUTHORS
index 048ecf1c..15926383 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -23,3 +23,4 @@ Patches and Suggestions
- Dave Challis (https://github.com/davechallis)
- Florian Bruhin (https://github.com/The-Compiler)
- Brett Randall (https://github.com/javabrett)
+- Harold Ozouf (https://github.com/jspdown)
diff --git a/Dockerfile b/Dockerfile
index 819006bb..61b990fd 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -8,7 +8,7 @@ LABEL org.kennethreitz.vendor="Kenneth Reitz"
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8
-RUN apt update -y && apt install python3-pip git -y && pip3 install --no-cache-dir pipenv
+RUN apt update -y && apt install python3-pip git -y && pip3 install --no-cache-dir pipenv==2022.4.8
ADD Pipfile Pipfile.lock /httpbin/
WORKDIR /httpbin
diff --git a/httpbin/core.py b/httpbin/core.py
index 305c9882..7e1018e6 100644
--- a/httpbin/core.py
+++ b/httpbin/core.py
@@ -99,8 +99,6 @@ def jsonify(*args, **kwargs):
"
Run locally: $ docker run -p 80:80 kennethreitz/httpbin
"
),
"contact": {
- "responsibleOrganization": "Kenneth Reitz",
- "responsibleDeveloper": "Kenneth Reitz",
"email": "me@kennethreitz.org",
"url": "https://kennethreitz.org",
},
@@ -110,7 +108,6 @@ def jsonify(*args, **kwargs):
"host": "httpbin.org", # overrides localhost:5000
"basePath": "/", # base bash for blueprint registration
"schemes": ["https"],
- "protocol": "https",
"tags": [
{
"name": "HTTP Methods",
@@ -543,7 +540,8 @@ def redirect_n_times(n):
parameters:
- in: path
name: n
- type: int
+ type: number
+ required: true
produces:
- text/html
responses:
@@ -585,7 +583,7 @@ def redirect_to():
required: true
- in: query
name: status_code
- type: int
+ type: number
post:
consumes:
- application/x-www-form-urlencoded
@@ -596,7 +594,7 @@ def redirect_to():
required: true
- in: formData
name: status_code
- type: int
+ type: number
required: false
patch:
consumes:
@@ -608,7 +606,7 @@ def redirect_to():
required: true
- in: formData
name: status_code
- type: int
+ type: number
required: false
put:
consumes:
@@ -620,7 +618,7 @@ def redirect_to():
required: true
- in: formData
name: status_code
- type: int
+ type: number
required: false
responses:
302:
@@ -653,7 +651,8 @@ def relative_redirect_n_times(n):
parameters:
- in: path
name: n
- type: int
+ type: number
+ required: true
produces:
- text/html
responses:
@@ -683,7 +682,8 @@ def absolute_redirect_n_times(n):
parameters:
- in: path
name: n
- type: int
+ type: number
+ required: true
produces:
- text/html
responses:
@@ -708,7 +708,8 @@ def stream_n_messages(n):
parameters:
- in: path
name: n
- type: int
+ type: number
+ required: true
produces:
- application/json
responses:
@@ -737,6 +738,8 @@ def view_status_code(codes):
parameters:
- in: path
name: codes
+ type: string
+ required: true
produces:
- text/plain
responses:
@@ -863,9 +866,11 @@ def set_cookie(name, value):
- in: path
name: name
type: string
+ required: true
- in: path
name: value
type: string
+ required: true
produces:
- text/plain
responses:
@@ -951,9 +956,11 @@ def basic_auth(user="user", passwd="passwd"):
- in: path
name: user
type: string
+ required: true
- in: path
name: passwd
type: string
+ required: true
produces:
- application/json
responses:
@@ -979,9 +986,11 @@ def hidden_basic_auth(user="user", passwd="passwd"):
- in: path
name: user
type: string
+ required: true
- in: path
name: passwd
type: string
+ required: true
produces:
- application/json
responses:
@@ -1005,8 +1014,7 @@ def bearer_auth():
parameters:
- in: header
name: Authorization
- schema:
- type: string
+ type: string
produces:
- application/json
responses:
@@ -1038,12 +1046,15 @@ def digest_auth_md5(qop=None, user="user", passwd="passwd"):
name: qop
type: string
description: auth or auth-int
+ required: true
- in: path
name: user
type: string
+ required: true
- in: path
name: passwd
type: string
+ required: true
produces:
- application/json
responses:
@@ -1066,17 +1077,21 @@ def digest_auth_nostale(qop=None, user="user", passwd="passwd", algorithm="MD5")
name: qop
type: string
description: auth or auth-int
+ required: true
- in: path
name: user
type: string
+ required: true
- in: path
name: passwd
type: string
+ required: true
- in: path
name: algorithm
type: string
description: MD5, SHA-256, SHA-512
default: MD5
+ required: true
produces:
- application/json
responses:
@@ -1102,21 +1117,26 @@ def digest_auth(
name: qop
type: string
description: auth or auth-int
+ required: true
- in: path
name: user
type: string
+ required: true
- in: path
name: passwd
type: string
+ required: true
- in: path
name: algorithm
type: string
description: MD5, SHA-256, SHA-512
default: MD5
+ required: true
- in: path
name: stale_after
type: string
default: never
+ required: true
produces:
- application/json
responses:
@@ -1201,7 +1221,8 @@ def delay_response(delay):
parameters:
- in: path
name: delay
- type: int
+ type: number
+ required: true
produces:
- application/json
responses:
@@ -1298,6 +1319,7 @@ def decode_base64(value):
name: value
type: string
default: SFRUUEJJTiBpcyBhd2Vzb21l
+ required: true
produces:
- text/html
responses:
@@ -1320,8 +1342,10 @@ def cache():
parameters:
- in: header
name: If-Modified-Since
+ type: string
- in: header
name: If-None-Match
+ type: string
produces:
- application/json
responses:
@@ -1351,10 +1375,16 @@ def etag(etag):
tags:
- Response inspection
parameters:
+ - in: path
+ name: etag
+ type: string
+ required: true
- in: header
name: If-None-Match
+ type: string
- in: header
name: If-Match
+ type: string
produces:
- application/json
responses:
@@ -1391,7 +1421,8 @@ def cache_control(value):
parameters:
- in: path
name: value
- type: integer
+ type: number
+ required: true
produces:
- application/json
responses:
@@ -1428,7 +1459,8 @@ def random_bytes(n):
parameters:
- in: path
name: n
- type: int
+ type: number
+ required: true
produces:
- application/octet-stream
responses:
@@ -1459,7 +1491,8 @@ def stream_random_bytes(n):
parameters:
- in: path
name: n
- type: int
+ type: number
+ required: true
produces:
- application/octet-stream
responses:
@@ -1503,7 +1536,8 @@ def range_request(numbytes):
parameters:
- in: path
name: numbytes
- type: int
+ type: number
+ required: true
produces:
- application/octet-stream
responses:
@@ -1593,10 +1627,12 @@ def link_page(n, offset):
parameters:
- in: path
name: n
- type: int
+ type: number
+ required: true
- in: path
name: offset
- type: int
+ type: number
+ required: true
produces:
- text/html
responses: