Skip to content

Commit e8ef1fa

Browse files
authored
refactor(pdk): share content-type constants via tools.http
This PR addresses a TODO to refactors the request handling code to use shared HTTP content-type constants from kong.tools.http instead of duplicating them in multiple modules. * Moves CONTENT_TYPE, CONTENT_TYPE_JSON, CONTENT_TYPE_FORM_DATA, and CONTENT_TYPE_POST to kong.tools.http. * Updates kong.pdk.request and kong.pdk.service.request to use the shared constants, to improves maintainability and consistency across the codebase.
1 parent 330b9e0 commit e8ef1fa

File tree

3 files changed

+18
-12
lines changed

3 files changed

+18
-12
lines changed

kong/pdk/request.lua

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ local multipart = require "multipart"
1111
local phase_checker = require "kong.pdk.private.phases"
1212
local normalize = require("kong.tools.uri").normalize
1313
local yield = require("kong.tools.yield").yield
14+
local content_types = require("kong.tools.http").CONTENT_TYPES
1415

1516

1617
local ngx = ngx
@@ -61,11 +62,10 @@ local function new(self)
6162
local MIN_PORT = 1
6263
local MAX_PORT = 65535
6364

64-
local CONTENT_TYPE = "Content-Type"
65-
66-
local CONTENT_TYPE_POST = "application/x-www-form-urlencoded"
67-
local CONTENT_TYPE_JSON = "application/json"
68-
local CONTENT_TYPE_FORM_DATA = "multipart/form-data"
65+
local CONTENT_TYPE = content_types.CONTENT_TYPE
66+
local CONTENT_TYPE_POST = content_types.CONTENT_TYPE_POST
67+
local CONTENT_TYPE_JSON = content_types.CONTENT_TYPE_JSON
68+
local CONTENT_TYPE_FORM_DATA = content_types.CONTENT_TYPE_FORM_DATA
6969

7070
local X_FORWARDED_PROTO = "X-Forwarded-Proto"
7171
local X_FORWARDED_HOST = "X-Forwarded-Host"

kong/pdk/service/request.lua

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ local check_phase = phase_checker.check
2626
local escape = require("kong.tools.uri").escape
2727
local get_header = require("kong.tools.http").get_header
2828
local search_remove = require("resty.ada.search").remove
29+
local content_types = require("kong.tools.http").CONTENT_TYPES
2930

3031

3132
local PHASES = phase_checker.phases
@@ -72,13 +73,10 @@ local function new(self)
7273

7374
local request = {}
7475

75-
-- TODO these constants should be shared with kong.request
76-
77-
local CONTENT_TYPE = "Content-Type"
78-
79-
local CONTENT_TYPE_POST = "application/x-www-form-urlencoded"
80-
local CONTENT_TYPE_JSON = "application/json"
81-
local CONTENT_TYPE_FORM_DATA = "multipart/form-data"
76+
local CONTENT_TYPE = content_types.CONTENT_TYPE
77+
local CONTENT_TYPE_POST = content_types.CONTENT_TYPE_POST
78+
local CONTENT_TYPE_JSON = content_types.CONTENT_TYPE_JSON
79+
local CONTENT_TYPE_FORM_DATA = content_types.CONTENT_TYPE_FORM_DATA
8280

8381
local SLASH = string_byte("/")
8482

kong/tools/http.lua

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,14 @@ local EMPTY = require("kong.tools.table").EMPTY
3030
local _M = {}
3131

3232

33+
_M.CONTENT_TYPES = {
34+
CONTENT_TYPE = "Content-Type",
35+
CONTENT_TYPE_POST = "application/x-www-form-urlencoded",
36+
CONTENT_TYPE_JSON = "application/json",
37+
CONTENT_TYPE_FORM_DATA = "multipart/form-data",
38+
}
39+
40+
3341
do
3442
local url = require "socket.url"
3543

0 commit comments

Comments
 (0)