layout | title | category | tags | order | |||
---|---|---|---|---|---|---|---|
developer-doc |
Language Server HTTP Endpoints |
language-server |
|
6 |
Language server exposes a number of HTTP endpoints on the same socket as the JSONRPC protocol.
HTTP endpoint that provides basic health checking capabilities.
Returns 200 OK
when the server is started and 500 Internal Server Error
otherwise.
> GET /_health HTTP/1.1
> Host: localhost:63597
> User-Agent: curl/7.77.0
> Accept: */*
< HTTP/1.1 200 OK
< Server: akka-http/10.2.0-RC1
< Date: Fri, 09 Jul 2021 15:16:16 GMT
< Content-Type: text/plain; charset=UTF-8
< Content-Length: 2
<
OK
The server readiness probe.
Returns 200 OK
when the server is initialized and 500 Internal Server Error
otherwise.
> GET /_health/readiness HTTP/1.1
> Host: localhost:63597
> User-Agent: curl/7.77.0
> Accept: */*
< HTTP/1.1 200 OK
< Server: akka-http/10.2.0-RC1
< Date: Fri, 09 Jul 2021 15:30:53 GMT
< Content-Type: text/plain; charset=UTF-8
< Content-Length: 2
<
OK
The server liveness probe.
Checks if all the server subsystems are functioning and returns 200 OK
or
500 Internal Server Error
otherwise.
> GET /_health/liveness HTTP/1.1
> Host: localhost:60339
> User-Agent: curl/7.77.0
> Accept: */*
< HTTP/1.1 200 OK
< Server: akka-http/10.2.0-RC1
< Date: Fri, 09 Jul 2021 15:35:43 GMT
< Content-Type: text/plain; charset=UTF-8
< Content-Length: 2
<
OK
The server idleness probe.
Return the amount of time the language server is idle.
> GET /_idle HTTP/1.1
> Host: localhost:60339
> User-Agent: curl/7.77.0
> Accept: */*
< HTTP/1.1 200 OK
< Server: akka-http/10.2.0-RC1
< Date: Fri, 09 Jul 2021 15:44:51 GMT
< Content-Type: application/json
< Content-Length: 21
<
{"idle_time_sec":58}
The reset request of the server idleness probe.
Reset the idle time of the language server.
> POST /_idle/reset HTTP/1.1
> Host: localhost:64996
> User-Agent: curl/7.77.0
> Accept: */*
< HTTP/1.1 200 OK
< Server: akka-http/10.2.0-RC1
< Date: Mon, 09 Aug 2021 15:37:27 GMT
< Content-Type: text/plain; charset=UTF-8
< Content-Length: 2
<
OK
Language server can expose HTTPS endpoints when configured appropriately:
- Project-manager must be told that project's language server should be started
with https/wss support
NETWORK_ENABLE_HTTPS=true
- User should provide appropriate secure configuration. Currently supported are PKCS12 bundle with password and certificate with private key. Depending on the configuration present, either choice will be sufficient.
If a project-manager is started with ENSO_HTTPS_PUBLIC_CERTIFICATE
and
ENSO_HTTPS_PRIVATE_KEY
env variables, SSL context will be created from a
certificate and a private key, respectively. If a project-manager is started
with ENSO_HTTPS_PKCS12_PATH
and ENSO_HTTPS_PKCS12_PASSWORD
env variables,
SSL context will be created from a file in PKCS12 format and a password to it,
respectively.