Grzybcio Wiki

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 ekonomia

Co wystawia

WarstwaCo daje
REST pod /api/v1Oferty, kategorie, statystyki, historia transakcji, profile graczy, dane do wykresów cen
SSE pod /api/v1/eventsZmiany na rynku transmitowane na żywo, bez odpytywania
OpenAPI 3 pod /api/docsGotowa 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:

MechanizmDomyślnie
Klucze API z uprawnieniami tylko do odczytuWłączone
CORS z jawną listą dozwolonych originówWłączone
Limity zapytań per IP i per klucz120 / 300 na minutę
Cache odpowiedzi z konfigurowalnym TTLWłączony
Brak stack trace w odpowiedziach błędówZawsze

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

WymaganieSzczegóły
Paper1.26.2 lub nowszy (api-version: 26.2)
Java25
GrzybcioRynek1.0.3 lub nowszy, kontrakt API 1
Vault + ekonomiaWymagane 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.

Dalej

Na tej stronie