mirror of
https://github.com/m1k1o/neko.git
synced 2025-07-19 17:49:31 +02:00
add API reference.
This commit is contained in:
parent
a7287dca25
commit
5886d946b2
75 changed files with 9361 additions and 253 deletions
174
webpage/docs/api/neko-api.info.mdx
Normal file
174
webpage/docs/api/neko-api.info.mdx
Normal file
|
@ -0,0 +1,174 @@
|
|||
---
|
||||
id: neko-api
|
||||
title: "Neko API"
|
||||
description: "Neko uses WebRTC and WebSocket besides REST API to provide real-time video streaming, interactive collaboration, and remote desktop functionality."
|
||||
sidebar_label: Introduction
|
||||
sidebar_position: 0
|
||||
hide_title: true
|
||||
custom_edit_url: null
|
||||
---
|
||||
|
||||
import ApiLogo from "@theme/ApiLogo";
|
||||
import Heading from "@theme/Heading";
|
||||
import SchemaTabs from "@theme/SchemaTabs";
|
||||
import TabItem from "@theme/TabItem";
|
||||
import Export from "@theme/ApiExplorer/Export";
|
||||
|
||||
<span
|
||||
className={"theme-doc-version-badge badge badge--secondary"}
|
||||
children={"Version: 3.0.0"}
|
||||
>
|
||||
</span>
|
||||
|
||||
<Export
|
||||
url={"https://raw.githubusercontent.com/m1k1o/neko/refs/heads/master/server/openapi.yaml"}
|
||||
proxy={undefined}
|
||||
>
|
||||
|
||||
</Export>
|
||||
|
||||
<Heading
|
||||
as={"h1"}
|
||||
className={"openapi__heading"}
|
||||
children={"Neko API"}
|
||||
>
|
||||
</Heading>
|
||||
|
||||
|
||||
|
||||
Neko uses WebRTC and WebSocket besides REST API to provide real-time video streaming, interactive collaboration, and remote desktop functionality.
|
||||
|
||||
### Core Technologies
|
||||
|
||||
- **Video Streaming over WebRTC**
|
||||
- Neko leverages **WebRTC** for real-time, low-latency, high-quality video and audio streaming.
|
||||
- Keyboard and mouse events are transmitted over the same WebRTC connection for seamless interaction.
|
||||
|
||||
- **Real-Time Signaling and Communication over WebSocket**
|
||||
- **WebSocket** is used for sSignaling in WebRTC (e.g., session establishment, ICE candidate exchange).
|
||||
- Live chat, session updates, and keyboard/mouse fallback are handled over WebSocket.
|
||||
|
||||
- **REST API for Everything Else**
|
||||
- **Authentication & Session Management** - Secure user authentication and session handling.
|
||||
- **Room and User Management** - Creating, modifying, and controlling user access to rooms.
|
||||
- **Desktop Controls** - Adjusting screen configurations, managing keyboard and mouse events.
|
||||
- **System Health & Metrics** - Retrieving system health checks and operational insights.
|
||||
|
||||
### How It All Works Together
|
||||
|
||||
1. **WebRTC** handles media streaming for **real-time video, audio and data**.
|
||||
2. **WebSocket** ensures a **persistent, bidirectional** connection for low-latency interactions.
|
||||
3. **REST API** provides **fine-grained control** over user access, and room configuration.
|
||||
|
||||
For more details, refer to the full API documentation.
|
||||
|
||||
|
||||
<div
|
||||
style={{"marginBottom":"2rem"}}
|
||||
>
|
||||
<Heading
|
||||
id={"authentication"}
|
||||
as={"h2"}
|
||||
className={"openapi-tabs__heading"}
|
||||
children={"Authentication"}
|
||||
>
|
||||
</Heading><SchemaTabs
|
||||
className={"openapi-tabs__security-schemes"}
|
||||
>
|
||||
<TabItem
|
||||
label={"API Key: CookieAuth"}
|
||||
value={"CookieAuth"}
|
||||
>
|
||||
|
||||
|
||||
Authentication using a session cookie.
|
||||
|
||||
<div>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
Security Scheme Type:
|
||||
</th><td>
|
||||
apiKey
|
||||
</td>
|
||||
</tr><tr>
|
||||
<th>
|
||||
Header parameter name:
|
||||
</th><td>
|
||||
NEKO_SESSION
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</TabItem><TabItem
|
||||
label={"HTTP: Bearer Auth"}
|
||||
value={"BearerAuth"}
|
||||
>
|
||||
|
||||
|
||||
Authentication using a Bearer token.
|
||||
|
||||
<div>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
Security Scheme Type:
|
||||
</th><td>
|
||||
http
|
||||
</td>
|
||||
</tr><tr>
|
||||
<th>
|
||||
HTTP Authorization Scheme:
|
||||
</th><td>
|
||||
bearer
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</TabItem><TabItem
|
||||
label={"API Key: TokenAuth"}
|
||||
value={"TokenAuth"}
|
||||
>
|
||||
|
||||
|
||||
Authentication using a token passed as a query parameter.
|
||||
|
||||
<div>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
Security Scheme Type:
|
||||
</th><td>
|
||||
apiKey
|
||||
</td>
|
||||
</tr><tr>
|
||||
<th>
|
||||
Header parameter name:
|
||||
</th><td>
|
||||
token
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</TabItem>
|
||||
</SchemaTabs>
|
||||
</div><div
|
||||
style={{"marginBottom":"var(--ifm-paragraph-margin-bottom)"}}
|
||||
>
|
||||
<h3
|
||||
style={{"marginBottom":"0.25rem"}}
|
||||
>
|
||||
License
|
||||
</h3><a
|
||||
href={"http://www.apache.org/licenses/LICENSE-2.0.html"}
|
||||
>
|
||||
Apache 2.0
|
||||
</a>
|
||||
</div>
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue