server (desktop)Начиная с 2.0.0
Константы
Header
: map =
74 элементов
{
ACCEPT=Accept,
ACCEPT_CHARSET=Accept-Charset,
ACCEPT_ENCODING=Accept-Encoding,
ACCEPT_LANGUAGE=Accept-Language,
ACCEPT_RANGES=Accept-Ranges,
ACCESS_CONTROL_ALLOW_CREDENTIALS=Access-Control-Allow-Credentials,
ACCESS_CONTROL_ALLOW_HEADERS=Access-Control-Allow-Headers,
ACCESS_CONTROL_ALLOW_METHODS=Access-Control-Allow-Methods,
ACCESS_CONTROL_ALLOW_ORIGIN=Access-Control-Allow-Origin,
ACCESS_CONTROL_EXPOSE_HEADERS=Access-Control-Expose-Headers,
ACCESS_CONTROL_MAX_AGE=Access-Control-Max-Age,
ACCESS_CONTROL_REQUEST_HEADERS=Access-Control-Request-Headers,
ACCESS_CONTROL_REQUEST_METHOD=Access-Control-Request-Method,
AGE=Age,
ALLOW=Allow,
AUTHORIZATION=Authorization,
CACHE_CONTROL=Cache-Control,
CLEAR_SITE_DATA=Clear-Site-Data,
CONNECTION=Connection,
CONTENT_DISPOSITION=Content-Disposition,
CONTENT_ENCODING=Content-Encoding,
CONTENT_LANGUAGE=Content-Language,
CONTENT_LENGTH=Content-Length,
CONTENT_LOCATION=Content-Location,
CONTENT_RANGE=Content-Range,
CONTENT_SECURITY_POLICY=Content-Security-Policy,
CONTENT_TYPE=Content-Type,
COOKIE=Cookie,
CROSS_ORIGIN_EMBEDDER_POLICY=Cross-Origin-Embedder-Policy,
CROSS_ORIGIN_OPENER_POLICY=Cross-Origin-Opener-Policy,
CROSS_ORIGIN_RESOURCE_POLICY=Cross-Origin-Resource-Policy,
DATE=Date,
ETAG=ETag,
EXPECT=Expect,
EXPIRES=Expires,
FROM=From,
HOST=Host,
IF_MATCH=If-Match,
IF_MODIFIED_SINCE=If-Modified-Since,
IF_NONE_MATCH=If-None-Match,
IF_RANGE=If-Range,
IF_UNMODIFIED_SINCE=If-Unmodified-Since,
LAST_MODIFIED=Last-Modified,
LINK=Link,
LOCATION=Location,
MAX_FORWARDS=Max-Forwards,
ORIGIN=Origin,
PRAGMA=Pragma,
PROXY_AUTHENTICATE=Proxy-Authenticate,
PROXY_AUTHORIZATION=Proxy-Authorization,
RANGE=Range,
REFERER=Referer,
REFERRER_POLICY=Referrer-Policy,
RETRY_AFTER=Retry-After,
SEC_WEBSOCKET_KEY=Sec-WebSocket-Key,
SERVER=Server,
SET_COOKIE=Set-Cookie,
STRICT_TRANSPORT_SECURITY=Strict-Transport-Security,
TE=TE,
TRAILER=Trailer,
TRANSFER_ENCODING=Transfer-Encoding,
UPGRADE=Upgrade,
USER_AGENT=User-Agent,
VARY=Vary,
VIA=Via,
WARNING=Warning,
WWW_AUTHENTICATE=WWW-Authenticate,
X_ACCEL_BUFFERING=X-Accel-Buffering,
X_CONTENT_TYPE_OPTIONS=X-Content-Type-Options,
X_FORWARDED_FOR=X-Forwarded-For,
X_FORWARDED_PROTO=X-Forwarded-Proto,
X_FRAME_OPTIONS=X-Frame-Options,
X_HTTP_METHOD_OVERRIDE=X-HTTP-Method-Override,
X_PERMITTED_CROSS_DOMAIN_POLICIES=X-Permitted-Cross-Domain-Policies
}
Функции
newServer(config = {})
— Инициализирует сервер, используя заданный конфиг. Возвращает ServerValue.
use std, server
newServer()
.get("/", def(ctx) = ctx.json({"message": "Hello, world!"}))
.start(8081)
serve(port = 8080, dir = ".")
— Запускает сервер на указанном порту и хостит директорию dir
use server
serve(8083, "./public_html")
Типы
ServerValue
Функции
get(path, handler, roles...)
— добавляет обработчик GET запросов
post(path, handler, roles...)
— добавляет обработчик POST запросов
put(path, handler, roles...)
— добавляет обработчик PUT запросов
patch(path, handler, roles...)
— добавляет обработчик PATCH запросов
head(path, handler, roles...)
— добавляет обработчик HEAD запросов
delete(path, handler, roles...)
— добавляет обработчик DELETE запросов
options(path, handler, roles...)
— добавляет обработчик OPTIONS запросов
error(status, handler, contentType = "*")
— добавляет обработчик ошибок
exception(className, handler)
— добавляет обработчик исключений
start(port = 8080, host = "")
— Запускает сервер. Укажите port
0, чтобы запустить сервер на случайном порте
stop()
— Останавливает работу сервера
ContextValue
Функции
appData(key)
— получает значение appData по ключу key
. См. config.appData
attribute(key, value = "")
— получает или устанавливает аттрибут по ключу key
basicAuthCredentials()
— возвращает простые данные авторизации, массив с двумя элементами — имя пользователя и пароль
extract(username, password) = ctx.basicAuthCredentials()
body()
— возвращает тело ответа в виде строки
bodyAsBytes()
— возвращает тело ответа в виде массива байт
characterEncoding()
— возвращает кодировку символов из заголовка Content-Type, если возможно
cookie(name, value = "", maxAge = -1)
— получает или устанавливает значение куки
contentLength()
— возвращает длину контента в байтах
contentType(contentType = "")
— получает или устанавливает заголовок Content-Type
contextPath()
— возвращает путь контекста запроса
endpointHandlerPath()
— возвращает путь обработчика совпавшего эндпоинта
formParam(key)
— возвращает параметр формы
fullUrl()
— возвращает полный адрес
handlerType()
— возвращает тип текущего обработчика
header(name, value ="")
— получает или устанавливает заголовок по названию name
host()
— возвращает имя хоста
html(html)
— устанавливает указанную html-строку в качестве результата. Также устанавливает заголовок Content-Type в text/html
ip()
— возвращает IP адрес
isHttpMethod()
— возвращает true, если запрос — http метод
isMultipartFormData()
— возвращает true, если запрос — multipart/formdata
isMultipart()
— возвращает true, если запрос — multipart
json(obj)
— сериализует объект в json строку и устанавливает в качестве результата
jsonStream(obj)
— сериализует объект в json потом и устанавливает в качестве результата
matchedPath()
— возвращает совпавший путь запроса
method()
— возвращает метод (GET, POST, ...)
path()
— возвращает путь запроса
pathParam(key)
— возвращает параметр пути запроса
port()
— возвращает номер порта
protocol()
— возвращает протокол
queryParam(key)
— возвращает параметр запроса
queryString()
— возвращает строку запроса
redirect(location, statusCode = 302)
— редиректит на указанный путь с указанным статусом. По умолчанию, статус — 302 FOUND
removeCookie(name, path = "/")
— удаляет куки по имени и пути
render(filePath, data = {})
— рендерит файл с указанными данными и устанавливает в качестве результата
result(value = "")
— получает или устанавливает результат. value
может быть строкой или массивом байт
status(status = ...)
— получает или устанавливает код статуса. status
может быть числовым кодом (404, 500) или строкой имени статуса ("NOT_FOUND", "INTERNAL_SERVER_ERROR")
statusCode()
— возвращает код статуса ответа
scheme()
— возвращает схему запроса
url()
— возвращает адрес запроса
userAgent()
— возвращает заголовок User-Agent
Config
{
"webjars": true,
"classpathDirs": ["dir1", "dir2"],
"externalDirs": ["dir1", "dir2"],
"asyncTimeout": 6_000,
"defaultContentType": "text/plain",
"etags": true,
"maxRequestSize": 1_000_000,
"defaultHost": "localhost",
"defaultPort": 8000,
"caseInsensitiveRoutes": true,
"ignoreTrailingSlashes": true,
"multipleSlashesAsSingle": true,
"contextPath": "/",
"basicAuth": ["user", "password"],
"dev": true,
"showBanner": false,
"sslRedirects": true,
"virtualThreads": true,
"appData": {
"key1": "value1",
"key2": "value2"
}
}