Przegląd
Most REST + SSE, który wystawia dane z GrzybcioRynku na zewnątrz jako API tylko do odczytu.
GrzybcioRynekWeb to dodatek do GrzybcioRynku. Jego jedyne zadanie to udostępnić dane, które rynek i tak już trzyma, w formie zrozumiałej dla przeglądarki.
To nie jest drugi plugin rynku
GrzybcioRynekWeb niczego nie przechowuje. Nie dotyka Vaulta, nie zapisuje ofert i nie
czyta listings.yml. Korzysta wyłącznie z MarketAPI, klas i eventów GrzybcioRynku.
Bez zainstalowanego GrzybcioRynku ten plugin w ogóle się nie uruchomi — jest wpisany
jako twarda zależność (depend).
Jak to się układa
Gracz w przeglądarce
│
▼
Strona WWW (Next.js) ← dokłada klucz API po stronie serwera
│
▼
GrzybcioRynekWeb :8765 ← ten plugin, REST + SSE
│
▼
GrzybcioRynek ← właściwy rynek, dane i ekonomiaCo wystawia
| Warstwa | Co daje |
|---|---|
REST pod /api/v1 | Oferty, kategorie, statystyki, historia transakcji, profile graczy, dane do wykresów cen |
SSE pod /api/v1/events | Zmiany na rynku transmitowane na żywo, bez odpytywania |
OpenAPI 3 pod /api/docs | Gotowa dokumentacja w HTML-u i openapi.json |
Co robi dla bezpieczeństwa
Endpoint jest wystawiany na świat, więc plugin ma wbudowane kilka warstw ochrony:
| Mechanizm | Domyślnie |
|---|---|
| Klucze API z uprawnieniami tylko do odczytu | Włączone |
| CORS z jawną listą dozwolonych originów | Włączone |
| Limity zapytań per IP i per klucz | 120 / 300 na minutę |
| Cache odpowiedzi z konfigurowalnym TTL | Włączony |
| Brak stack trace w odpowiedziach błędów | Zawsze |
Zmień domyślny klucz przed wystawieniem na świat
W config.yml klucz ma wartość CHANGE_ME. Zostawienie go oznacza, że każdy, kto zna
tę dokumentację, ma dostęp do twoich danych. To pierwsza rzecz do zrobienia po
instalacji.
Czego wymaga
| Wymaganie | Szczegóły |
|---|---|
| Paper | 1.26.2 lub nowszy (api-version: 26.2) |
| Java | 25 |
| GrzybcioRynek | 1.0.3 lub nowszy, kontrakt API 1 |
| Vault + ekonomia | Wymagane przez sam GrzybcioRynek |
Na podstawie kodu
Opis powstał na podstawie repozytorium
Grzybcio-plugins/GrzybcioRynekWeb —
config.yml, plugin.yml oraz docs/API.md. Wersja mostu 1.0.0.