Wynik MediaWiki API

This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.

Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.

See the complete documentation, or the API help for more information.

{
    "batchcomplete": "",
    "continue": {
        "gapcontinue": "Redmine",
        "continue": "gapcontinue||"
    },
    "query": {
        "pages": {
            "313": {
                "pageid": 313,
                "ns": 0,
                "title": "React",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "''React.js'' jest  bibliotek\u0105 j\u0119zyka oprogramowania JavaScript, kt\u00f3ra wykorzystywana jest na przyk\u0142ad do tworzenia interfejs\u00f3w graficznych aplikacji internetowych.\nPoni\u017cszy przewodnik wskazuje szybkie uruchomienie backendu oraz frontendu z u\u017cyciem express.\n\n===Kroki wst\u0119pne===\n\n*Odblokuj [[Binexec]].\n*Wykonaj [[Node.js#Wst.C4.99pna_konfiguracja|konfiguracj\u0119 \u015brodowiska Node.js]] wskazuj\u0105c wersj\u0119 node na 14.\n*[[Strona_WWW#Node.js|Dodaj domen\u0119]] typu Node.js wskazuj\u0105c wersj\u0119 14.\n*Przejd\u017a do folderu <code>domains/''domena''</code> domeny:  <syntaxhighlight lang=\"bash\">cd ~/domains/domena/public_nodejs</syntaxhighlight>\n\n=== Instalacja ===\n\nWygeneruj plik <code>package.json</code> za pomoc\u0105 polecenia:\n \n npm init -y\n\nInstalacja express\n\n npm install express\n\nUtw\u00f3rz plik <code>app.js</code>\n\n touch app.js\n\nWklej do niego zawarto\u015b\u0107\n\n<syntaxhighlight lang=\"bash\">const express = require(\"express\");\n\nconst PORT = process.env.PORT || 3000;\n\nconst app = express();\n\n// Poni\u017cszy kod spowoduje odpowied\u017a API o tre\u015bci \"Witaj \u015bwiecie!\" do strony utworzonej w React. \n\napp.get(\"/api\", (req, res) => {\n  res.json({ message: \"Witaj \u015awiecie!\" });\n});\n\napp.listen(PORT, () => {\n  console.log(`Server listening on ${PORT}`);\n});\n</syntaxhighlight>\n\nStw\u00f3rz frontend React poleceniem\n\n npx create-react-app frontend\n\nZmie\u0144 zawarto\u015b\u0107 <code>frontend/src/App.js</code> na poni\u017cszy kod (wykorzystanie API)\n\n<syntaxhighlight lang=\"bash\">\n\nimport React from \"react\";\nimport logo from \"./logo.svg\";\nimport \"./App.css\";\n\nfunction App() {\n  const [data, setData] = React.useState(null);\n\n  React.useEffect(() => {\n    fetch(\"/api\")\n      .then((res) => res.json())\n      .then((data) => setData(data.message));\n  }, []);\n\n  return (\n    <div className=\"App\">\n      <header className=\"App-header\">\n        <img src={logo} className=\"App-logo\" alt=\"logo\" />\n        <p>{!data ? \"Loading...\" : data}</p>\n      </header>\n    </div>\n  );\n}\n\nexport default App;\n</syntaxhighlight>\n\nPrzejd\u017a do katalogu <code>frontend/</code> i zbuduj zawarto\u015b\u0107 poleceniem\n\n cd frontend/ && yarn build\n\nPo wykonaniu buildu, stw\u00f3rz dowi\u0105zanie symboliczne do <code>~/domena/public_nodejs/public</code> (je\u015bli katalog <code>public/</code> istnieje, nale\u017cy go usun\u0105\u0107)\n\n cd ~/domains/domena/public_nodejs && ln -s ~/domains/domena/public_nodejs/frontend/build public\n\n{{Warning|W przypadku hostowania strony statycznej, bez u\u017cycia node, zalecamy utworzenie strony typu PHP\n\n}}\n\nNast\u0119pnie zrestartuj aplikacj\u0119 poleceniem\n\n devil www restart domena.pl\n\nPo przej\u015bciu na adres swojej strony, powiniene\u015b ujrze\u0107 tablic\u0119 powitaln\u0105 z napisem \"Witaj \u015awiecie\" i logiem React.\n\n=== Odno\u015bniki zewn\u0119trzne ===\n* [https://reactjs.org/docs/getting-started.html Dokumentacja React.js]\n* [https://expressjs.com/ Strona projektu Express]\n\n[[Kategoria:Poradniki]] [[Kategoria:Node.js]]"
                    }
                ]
            },
            "28": {
                "pageid": 28,
                "ns": 0,
                "title": "Redis",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "''Redis'' to otwarty system cache typu klucz - warto\u015b\u0107 oraz nie SQLowa baza danych wydawana na licencji BSD.\n\n=== Plik konfiguracyjny ===\n\nPlik konfiguracyjny mo\u017cna pobra\u0107 za pomoc\u0105 polecenia <code><nowiki>wget https://raw.githubusercontent.com/antirez/redis/3.2/redis.conf</nowiki></code>.\n\n==== Unixsocket ====\n\nZalecanym sposobem udost\u0119pniania serwera Redis na MyDevil jest unixsocket. Jest to specjalny plik, przez kt\u00f3ry komunikuj\u0105 si\u0119 ze sob\u0105 serwer Redis oraz aplikacja.\n\nAby skonfigurowa\u0107 serwer tak by by\u0142 dost\u0119pny przez unixsocket nale\u017cy ustawi\u0107 w pliku <code class=\"directory\">redis.conf</code> zmienne:\n* ''port'' na 0\n* ''unixsocket'' na <code class=\"directory\">/home/''login''/domains/''domena''/redis.sock</code>\n\n\nGdzie ''login'' to nazwa konta hostingowego, ''domena'' to domena strony kt\u00f3rej dotyczy uruchamiany Redis.\n\n==== Has\u0142o ====\n\nAby zdefiniowa\u0107 has\u0142o do serwera Redis nale\u017cy w pliku konfiguracyjnym <code class=\"directory\">redis.conf</code> wpisa\u0107 je po frazie ''requirepass''. \n\n{{warning|W wypadku braku ustawienia has\u0142a podczas wystawiania aplikacji na z nas\u0142uchem port ka\u017cdy b\u0119dzie posiada\u0142 dost\u0119p do twojej bazy danych i jej zawarto\u015bci.}}\n\n==== Port ====\n\nAby skonfigurowa\u0107 serwer tak by by\u0142 dost\u0119pny przez port nale\u017cy zarezerwowa\u0107 port. Nast\u0119pnie trzeba ustawi\u0107 w pliku <code class=\"directory\">redis.conf</code> zmienn\u0105 ''port'' na nr zarezerwowanego portu.\n\n{{warning|Po ustawieniu us\u0142ugi na dany port, o ile nie ograniczono w pliku konfiguracyjnym nas\u0142uchu do 127.0.0.1, baza dost\u0119pna b\u0119dzie zdalnie, nale\u017cy wi\u0119c bezwzgl\u0119dnie ustawi\u0107 has\u0142o dost\u0119pu!}}\n\n==== Ograniczanie dost\u0119pu ====\n\nDomy\u015blnie Redis nas\u0142uchuje na wszystkich intefejsach sieciowych. Aby ograniczy\u0107 nas\u0142uchiwanie do localhost nale\u017cy ustawi\u0107 w pliku <code class=\"directory\">redis.conf</code> zmienn\u0105 bind na 127.0.0.1.\n\n=== Persystencja ===\n\nPersystencja, czyli wytrzyma\u0142o\u015b\u0107 bazy danych w przypadku Redisa ma 2 mechanizmy: RDB i AOF. Ka\u017cde z nich jest konfigurowalne, co jest opisane poni\u017cej. Zar\u00f3wno mo\u017cna w\u0142\u0105czy\u0107 oba mechanizmy jak i oba wy\u0142\u0105czy\u0107. Domy\u015blnie wszystkie podane poni\u017cej pliki zapisuj\u0105 si\u0119 w lokacji z kt\u00f3rej uruchomiono serwer redis.\n\n==== RDB ====\n\nRDB polega na zrzucaniu bazy danych z pami\u0119ci RAM co pewien czas i co pewn\u0105 ilo\u015b\u0107 zmian w bazie danych. Domy\u015blna konfiguracja zapisuj\u0119 baz\u0119 danych do pliku <code class=\"directory\">dump.rdb</code> co:\n* co 900 sekund (15 minut), je\u017celi by\u0142a co najmniej jedna zmiana (w konfiguracji to linijka: save 900 1),\n* co 300 sekund (5 minut), je\u017celi by\u0142o co najmniej 10 zmian (save 300 10),\n* co 60 sekund, je\u017celi by\u0142o co najmniej 10000 zmian (save 60 10000).\n\nNazw\u0119 pliku do kt\u00f3rego jest zrzucana baza danych jest zdefiniowana przez zmienn\u0105 ''dbfilename''.\n\nAby wy\u0142\u0105czy\u0107 RDB nale\u017cy usun\u0105\u0107 linijki save z konfiguracji.\n\n==== AOF ====\n\nAOF - append-only file polega na zapisywaniu polece\u0144 ''write'' (czyli takich, kt\u00f3re zmieniaj\u0105 dane). Domy\u015blna konfiguracja nie korzysta z mechanizmu AOF. Plik stworzony w ten spos\u00f3b mo\u017ce by\u0107 wielokrotnie wi\u0119kszy od rozmiaru bazy danych. Nazwa pliku AOF jest zdefiniowana prze zmienn\u0105 ''appendfilename''.\n\nJest mo\u017cliwo\u015b\u0107 ograniczania wielko\u015bci pliku przez przebudowanie pliku AOF bez przerwania dzia\u0142ania Redisa.\n\nAby w\u0142\u0105czy\u0107 AOF nale\u017cy zmieni\u0107 ''appendonly'' na yes.\n\n=== Uruchamianie ===\nAby uruchomi\u0107 serwer Redisa nale\u017cy skorzysta\u0107 z polecenia:\n screen redis-server redis.conf\n\nZalecamy r\u00f3wnie\u017c dodanie zadania [[Cron|CRON]], uruchamiaj\u0105cego serwer Redis po reboocie serwera, przyk\u0142adowe polecenie kt\u00f3re nale\u017cy doda\u0107 w zadaniu cron do wykonania po reboot:\n\n redis-server /usr/home/login/redis.conf\n\nPrzyj\u0119li\u015bmy, \u017ce plik konfiguracyjny znajduje si\u0119 w katalogu g\u0142\u00f3wnym konta, warto\u015b\u0107 \"login\" nale\u017cy zast\u0105pi\u0107 nazw\u0105 u\u017cytkownika.\n\n=== PHP ===\n\nNa serwerach MyDevil Redis jest dost\u0119pny r\u00f3wnie\u017c z [[PHP]] za pomoc\u0105 odpowiedniego modu\u0142u.\n\n[[Kategoria:Bazy_danych]]"
                    }
                ]
            }
        }
    }
}