ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 419
Obunachilar
-124 soatlar
Ma'lumot yo'q7 kunlar
-430 kunlar
Postlar arxiv
1 419
ืคืจืืืงื AI ืืืฉ ืืงืื ืคืชืื ืืชืจืืื ืฉืคืืช
ืืืืืงื ืืื ืืจื ืืฆืืื ืช ืืืืื ืืืืื ืืืฉืืช ืืฉืคื ืืจื ืืืชืจืื ืืช ืืืืืื ืื ืืฉืืฉ ืฉืืจ ืืื ืื ืื ื ืฉืืืขืื ืืืชื ืฉืื ืืฉืื. ืื ืืืืก ืืื ืื ืืกืืื ืฉืื ืืขืฉืืช ืกืืจ ืืชืืืื ืืื ืืืื ืืช ืืขืจืืช ืืืืื ืฉืคื ืืกืืืจืช ืืฉืืจืื ืืืืืืื. ืื ืฉืืคืจืืืงื ืืืืข ืืขืฉืืช ืืืจ ืืืื:
1. ืืืืืงืื ืงืืฉืืจ ืืฉืืจ ืืืืืืื.
2. ืืืขืจืืช ืืคืขืืื AI ืืื ืืืืฆืื ืืช ืืืืืื ืฉื ืืฉืืจ, ืืชืจืื ืืช ืืืืืื ืืืืืืืืื ืืืืฆืืจ ืชืจืืืื ืืืฆืจ ืืืืื ืืืชืืื.
3. ืืจื ืืืืฉืง ืืคืฉืจ ืืืงืฉืื ืืฉืืจ ืืืืงืื ืืื ืคืขื ืืชืจืื ืืืง ืืืจ.
ืืคืฉืจ ืืจืืืช ืืื ืืืืื ืืฉืืจ ืืขืจืืืช ืขื ืชืจืืื ืืื ืืืืช
https://langlets.app/courses/BsvhDWS5voU
ืืืื ืืกืคืจืืืช ืขื ืชืจืืื ืืื ืืืืช
https://langlets.app/courses/5R0TtX-gVHA
ืื ืชืจืฉืื ืืืชืจ ืชืืืื ืื ืืืืืืง ืงืืฉืืจืื ืฉืืื ืืืคืขืืื ืื ืขืืื.
ืื ืืืื
ืืคืจืืืงื ืืืฉ ืืชืืืืช ืืืจื ืืืฉ ืขืืืื ืืืื ืืืจืื ืืกืจืื, ืืื ืืืืจืื ืืืจืืืืื ืฉืื ื ืจืืฆื ืืืืกืืฃ:
1. ืืกื "ืกืืืืก ืืฆืืจื" ืฉืืจืื ืืฆืืจื ืืคื ืืช ืฉืืขืืจ ืืฉืคื ืฉื ืืฆืจ ืืืจื ืฉืืืืืงืื ืืื ืง (ืืจืืข ืื ืืกืื ืืจืื ื ืืคืฉืื ืฉืืืืื ืืืื ืืฉืืฉืืขืืจ ืืืื).
2. ืืคืฉืจืืช ืืขืจืืื ืฉื ืืชืื ืื ืฉื AI ืืฆืจ ืืื ืืชืงื ืื ืืฉืคืจ.
3. ืชืจืืืื ืฉืคื ืืืืื ืืืฆืืจืชืืื ืืืชืจ (ืื ืืืืง ืืื ืงืฉื ืืืขืชื ืื ืฆืจืื ืืืืื ืืื ืืืื ืืื ืืืฃ ืืืืื ืืืชืจืื ืฉืืจืื ืืฉืคื ืืจื).
4. ืืจื ืงืื ืืฉืชืฃ ืฉืืขืืจืื ืฉืืฆืจืชื ืขื ืืืจืื.
5. ืืคืืืงืฆืื ืืืืืคืื ืืื ืืจืืืื.
ืืคืจืืืงื ืืืื ืืืื ืขืืืื ืขื AI ืืืืจ ืืืื ืืืชื ืืจืื ืขื ืืชืืืช ืคืจืืืคืืื, ืขืืืื ืขื ืืืืืื, ืื AI ืืืื ืืื ืืืื ืืขืฉืืช. ืืื ืฉืืชืืชื ืืคืชืืื ืื ืืชื ืืืืขืื ืืืชืื ืงืื, ืืืฉืืื ืฉืืจืขืืื ืืืืืง ืืจืืฆืื ืืขืืืจ ืืงืื ืืืชื ืืชืื ืื ืืืืขื ืืืฉืื ืืืื ืืก ืืชืื ืืขื ืืื ืื.
ืืช ืงืื ืืคืจืืืงื ืืืื ืชืืืื ืืืฆืื ืืืืืืื ืฉืื ืืงืืฉืืจ ืืื:
https://github.com/ynonp/langlets-rails
1 419
ืืืื ื Activity ื React
ืื React 19.2 ืืืกืืคื ืืืื ื ืืืฉ ืฉืืจืื ืื ืฉืื ืืืืืื ืืฉื Activity. ืืื ืืืืช ืฆืจืื ืืืชื? ืืืื ื ืจืื ืื ืืื ืขืืฉื ืืืชื ืืื ืืืืืื ืขื ืกืืฃ ืืคืืกื.
ืืืื ื Activity ืขืืฉื ืฉื ื ืืืจืื, ืืจืืฉืื ืืื ืืืืจืช ืืื ืืขืืฆืื display: none ืืื ืืืืืื ืฉืื ืืื ืฉืื ืขืืืื ืืืฉืืจื ืืืืื ืืื ืื ืืืคืืขื ืขื ืืืกื. ืืืืฉืงื ืืืืื ืื ืื ืื ืืื ืืืื ืืขืืื ืืื ืืืชืจ ืืืืืงื ืืืืืืช ืฉื ืืืืื ื ืื ืืฉืจืง ืืฉื ืื ืืช ื display ืืืืื ื ืขืืืื ืฉืืืจ ืขื ื state ืฉืื ืืื ืืืืืข ื DOM ื ืฉืืจ, ืื ืื ืืฉ ืื ื ืืืคืก ืืืื ืืืืืื ืืขืืืจืื ืืืื ืืืจ ืืืืืจืื ืืืืคืก ืขืืืื ืืฉืืืจ ืขื ืืขืจืืื ืฉื ืืชืื ืื. ื ืฉืื ืื ืฉืื ืืคื ื ืจืืืงื 19.2 ืื ืื ื ืื ืื ืื ืื ืืืื ืืคืฉืื ืืืืจื ื ืืื ืืช ืืื ืืขืืฆืื display: none ืืฉืืฉืชืืฉืื ื ืืืืื ืืื ืืืืื.
ืืื ืืฉื ื ืฉื Activity, ืืืื ืืืืจ ืืืืฉ ืฉืืืืื ื ืื ืกื ืงืืืคืื ื ืื ืืืฉื ืืจืืืงื ืืื ืืืืงื ืฉื ืืืคืงืืื ืืืจืฆืช ืคืื ืงืฆืืืช ืื ืืงืื ืฉื ืื ืืืคืงืืื ืื Cleanup Refs. ืืฆื ืืื ืื ืื ืื ืื ืขืืืจ ืื ืืฉ ืื ื ืืชืื ืขืฅ ืืงืืืคืื ื ืืืช ืฉื ืืื ืืืืืื ืืคืงืืื ืฉืืื ืืื ืฆืืจื ืืืฆืืื ืืืืื - ืืืืืื ืืืื ืืฉ ืืืื ื ืฉืืฉืชืืฉ ืืืฆืืื ืื ืืืืื ื ืืกืืืจ ืืช ืืืฆืืื ืืฉืขืืืจืื ืืื. ืืืืืืืืช ืืชืืขืื ืื ืืืืจืื ืขื ื ืื ืืืืื ืฉืืืื ืืขืฆืืจ ืืคื ื ืฉืืืฆืืื ืืืืื. ืืฆื ืฉื ื ืื ืืืคืงื ืฉืืื ืืงืฉืื ืืืืจืืขืื ื Web Socket ืืืขืืื ืืช ื UI ืื ืืืืื ืืืคืงื ืืคืกืืง ืืช ืืืืื ื ืืืืจืืขืื ืืื ืืฉื ืืืืจ ืืืื ื ืฆืืจื ืืืฆืข ืขืืืื ืืืื.
ืื ื ืืืืื ืงืื ื ื Activity ืืคืขืืื ืขื ืืื ืืืืขืืช debug ืืื ืืืืื ืืื ืื ืขืืื. ืืคืฉืจ ืืืืืืง ืืืชื ืืื ืืืฉืื next 16:
'use client';
import { useState, useRef, useEffect, Activity } from "react";
function refChanged(el: any) {
console.log(\set ref\);
return () => {
console.log(\unset ref\)
}
}
function ActivityDemo() {
useEffect(() => {
console.log(\start effect\)
return () => {
console.log(\stop effect\)
}
}, [])
return (
<p ref={refChanged}>hello world</p>
)
}
export default function Home() {
const [visible, setVisible] = useState(true);
return (
<div>
<input type="checkbox" checked={visible} onChange={() => setVisible(v => !v)} />
<Activity mode={visible ? "visible" : "hidden"}>
<ActivityDemo />
</Activity>
</div>
);
}
ืืงืืืคืื ื ืื ActivityDemo ืืฆืืื ืืืืขื ืืืช ืืฉื ืืฆืจ ืืืคืงื ืืืืืขื ื ืืกืคืช ืืฉื ref ืืชืขืืื. ืืฉืืืืื ืืช ืชืืืช ืืืืืจื ืืงืืืคืื ื ืื ืืืคืืช ืืืชื ื ืจืืืช ืืื ืื ื ืืงืืืื ืืช ืืืืืขืืช unset ref ื stop effect ืืชืืฆืื ืืืืืื ืืืคืงื ืื Ref Cleanup Callback.
ืื ืื ืืขืชืื? ืื ืืงืืืคืื ื ืื ืฉืืืชื ืืกืจื ืืจืืืงื? ืื ื ืืืฉื ืฉืื. ืืกืชืจื ืฉื ืืืืื ืขืฉืื ื ืื ืงืืื ืขื ืืืืจืช display: none ื CSS. ืื ืฉืจืฆื ืืืืืช ืืคืงืืื ืกืคืฆืืคืืื ืืืฆืืื ืืืืื ืืืืืจ ืืช ื"ื ืจืืืช" ืืชืืจ prop ืืืฉืชืืฉ ืื ืืืขืจื ืืชืืืืืช ืฉื ืืืคืงื. ืืืืื ืื ืืืคืงืืื ืืืจืืจืช ืืืื ืื ืจืื ืจืง ืชืืืื.
ืืืืืข ื ืืกืฃ ืืขืื ืืืื ืืืืืืืช ืขื ืืงืืืคืื ื ืื ืืืืฉื ืฉืืื ืืืขืืฃ ืืื ืืืฃ ืืชืืขืื ืฉืืื:
https://react.dev/reference/react/Activity1 419
ืงืืืื ืืื ืคืืฉ (ืื - ืืชื ืืืฆืืจ ืืช ืืขื ืฃ)
ืืจืื ืืงืืืืช ืขืืืืื ืขื ืืื ืืฉืืืช ืขืืืื ืืืื. ืืฉืืื ืืืชืืื ืืขืืื ืขื ืคืืฆ'ืจ ืืืฆืจืื ืขื ืฃ, ืขืืฉืื ืงืืืืืื ืืืืชื ืขื ืฃ, ืืฉืืคืืฆ'ืจ ืืืื ืฉืืืืื PR ืืืกืืฃ ืืืจื ืืืืืื ืืืืงืื ืืช ืืขื ืฃ. ืื ื ืืืื ืืื ืื ืืืฉื ืคืืคืืืจืืช:
1. ืฉืงืืคืืช - ืืืื ืจืืืื ืืช ืืขื ืคืื ืืืขืืืื ืฉื ืืืื.
2. ืืืืื - ืืคืฉืจ ืืขืฉืืช push ืืืจื ืื ืงืืืื ืืื ืื ืชืื ืื ืืืืืื ืืฉืจืช.
3. ืฉืืชืืฃ ืคืขืืื - ืื ื ืืืื ืืืืื ืืขืืืื ืืืงืฉ ืขืืจื ืืืืจ ืื ืืืจื, ืื ืืืฉืื ืืช ืืขื ืฃ ืฉืื ืืฉืืื ืชืืงืื ืืืืืคื.
ืืฆืืจืช ืขื ืฃ ืืชืืืืช ืืขืืืื ืขื ืคืืฆ'ืจ ืขืืืจืช ืืฉืืืจ ืขื ืกืืจ ืขืืืื ืืืืขืืื ืืืืืื ืืฉืื ืื ื ืจืง ืืชืืืืื ืืขืืื ืขื ืืื.
ืืื ืื ืจืง ืืจื ืืืช ืืขืืื. ืืืืื ืืืชืจ ืืืืื, ืืืืืื ืื ืืชื ืงืฆืช ืืืชืจ ืืืืื ืื ืขื ืืื. ืืืืืื ืื ืื ื ืื ืฆืจืื ืืฉืชืฃ ืืช ืืขืืืื ืืจืง ืืืงืจ ืจืขืืื, ืื ื ืืืื ืืืืืช ืขื ืืฆืืจืช ืืขื ืฃ ืืขื ื push. ืื ื ืืงืืื ืขื ืืืืื ื ืฉืื, ืขืืืื ืขืืฉื ืงืืืืืื ืจืืื ืืื ืฆืขื ืืืืจื ืฉืืคืืฆ'ืจ ืขืืื ืื ื ืืคืขืื rebase ืืื ืืืืืง ืืืง ืืืงืืืืืื ืืืฉื ืืช ืืืืขืืช ืฉื ืืืจืื ืืจืง ืื ืืืฆืจ ืืช ืืขื ืฃ ืืืืืฃ. ืืฆืืจื ืืืืช ืื ืืืืจืื ืืฆืืืช ืจืืืื ืืืกืืืจืื ืืืชืจ ืืจืืจื ืฉื ืงืืืืืื. ืื ืขืื ืื ืืืคืชื ืืจืื ืืืชืจ ืงื ืืฉื ืืช ืื ืืืจืืง ืงืืืืืื ืืื ืืืืื ืฉืืืื ืืืฉืื ืืืจ ืืฉื ืืช ืืงืืืืืื ืืืื.
ืืจื ืืคืืื ืืืชืจ ืืืื ืืื ืืืฆืืจ ืืช ืืขื ืฃ ืืื ืืืืืช ืขื ืืืืืคื ืฉืื ืืฉื ืืงืืืืืื. ืืฉืืืืคืื ืขื ืฃ ืคืขื ืจืืฉืื ื ืืื ืืชืืื ื ืืืืจืฉ ืฉื ืืฆืืจ ืืช ืืขื ืฃ ืืฆืืจื ืืคืืจืฉืช ืืฉืจืช:
fatal: The current branch test has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin test
To have this happen automatically for branches without a tracking
upstream, see 'push.autoSetupRemote' in 'git help config'.
ืืคืฉืจ ืืืืฉืื ืืขืืื ืขื ืขื ืฃ ืืงืืื ืืื ืืืืืืจ ืืช ื upstream ืืืื ืืขืฉืืช push ืืืืืขืืจ ืืืืืขื ืืืืช ืืื ืื ืืขืฉืืช push ืืืขืืช. ืืชื ืื ืืืืืฃ? ืืืจื ื rebase ืืฉืื ืืงืืืืืื ืขืืืื ื ืขื ืืืืืขืืช ืื ืืื ืืช.1 419
ืืื ืืืื ืืืชืจ ืืื
ืฉืืืฉ ืจืืืช ืฉื ืืืืื ืืืืืจ ืืชืื ืื AI:
1. ืืฉืืื ืืืืืืืืช - ืื ืืฉืื ื ืืืงืฉ ืื AI ืืืชืื ืืช ืืงืื ืืฉืืืื ืืฉืจ ืืชืื ื IDE ืืืืกืืืจ ืื ืืื ืืชื, ืื ืืฉืื ื ืืชืืื ืืืชืื ืืืฉืชืืฉ ืืืื ืืื ืืืฉืืื ืืช ืืืืืืฉืื.
2. ืืขืชืงื - ืื ืืฉืื ื ืืืงืฉ ืื AI ืืืชืื ืืช ืืงืื ืืชืื ืืกื ืืฆ'ื ืื ืืฉืื ื ืงืืจื ืืืจืื ืืชืื ืืืืื ืืื ืืืืชื ืืช ืืืชื ืืงืื ืืื ืืืคืก ืืืืื ื IDE ืฉืื (ืื ืืขืชืง-ืืืืง, ืืืฉ ืืงืืื). ืคื ืืืจ ืืงืืชื ืฆืขื ืืฉืืขืืชื ืงืืืื ืืืืื ืช ืจืืช ืืืืืื. ืื ื ืื ืืืื ืืื ืืื ืืืงืืื ืขืฆืื ืืืจืฉืช ืจืืช ืืื ื ืืืชืจ ืืขืืืงื ื Copy/Paste.
3. ืฉืื ืืืื ืงืื ืื - ืืืจืื ืฉืืืฉืืช ืื ืืฉืื ื ืืฉื ื ืืืจืื ืงืื ืื ืืงืื ืื ืืื ืืืช ืืืกืื ืฉืื. ืืืืืื ืื ื ืืืงืฉ ื AI ืืืชืื ืืืืื ืืงืืืคืื ื ืื ืืจืืืงื ืืื ืืืื ื IDE ืืืื ื ืืช ืืงืืืคืื ื ืื ื next.js ืื ืืืืืฃ ืฉืคืช ืชืื ืืช ืืืืชื ืืช ืืงืืืคืื ื ืื ืืื ื Reagent ืฉืื ืืจืืืงื ื ClojureScript. ืื ืื ืื ื ืืืื Machine Learning ืื ื ืืืื ืืงืจืื ืืืจืื ื pytorch ืืืืชืื ืืช ืืืืืช ืืงืื ืืขืฆืื ื C++ ื libtorch ืื ื torch-rb ืืจืืื. ืืชืืืช ืืงืื ืืืืฉ ืืกืืืื ืงืฆืช ืฉืื ื ืืืจืฉืช ืจืื ืืืชืจ ืืืืื ืฉื ืืื ื ืืืืจืืื ืืืชื ื ืืืืืจ ื AI ืืืฉืืื ืฉืืืืช ืืืืจื ืขื ืืืงืื ืืืงืกื, ืื ืฉืขืื ืืืฉืื ืืืืืง ืืช ืืืื ื.
ืืฉืืืืจื ืืื ืืืืื ืืขืืืง ืืื ืืืจืื ืขืืืืื ืืืชืจ ืืื ืื ืืชืจืื.
1 419
"version": "d114e02a9a610c261738bf4254648a71b3fce993",
"encryptHistory": true,
"clearHistory": false
}
ืืื ืื ืื ื ืืืจ ืืืื ืื ืืืืืืื ืืื ืฉืืืจืืจืช ืืืื ืืื ืจืฆืื ืื ืืคืฆื ืืช ืงืืฆื ื JavaScript ืฉืื ื ืืคื ืืคืื. ืื ืื ืชืืืืื ืืื ืื ืื ืฉื ืคืืฆืื ืงืื ืื ืืืฉ ื ืจืฆื ืืื ืคืฉืื ืื ืืคืขืืืื ืืืชื ืืื ืคืจืืืงื ืืืฉ.
ืื ืืืื
ืืื ืจืฆืื ืืืืืช ืขืื ืืืื ืืืืืืช ืฉืื ืืกืคืงืชื ืืกืงืืจ ืืื ืืื ืืืคืื ืืืืฉืช ืืคืกืื, ืืขืืืช ืงืืฆืื, ืจืืขื ืื ืืืืืืื ืฉื ืืืืข (polling), ื ืืืื ืืืงืื ืืืืืื ืืขืื. ืืคืฉืจ ืืืฆืื ืืืื ืืืืืืืช ืืชืืขืื ืฉืืื ืืื:
https://inertia-rails.dev/
ืืื ืืืืช ืฉืืขืืจ ืืืขืืคืช ืฉื ื ืืชืื ืืืฆืืช ืืคืื ืืืืืจ ืืกื ืืื ืืืคืืืงืฆืืืช Client Side React ืื ืฉืืคืฉืจ ืืืฉืชืืฉ ืืื ืืกืคืจืืืช ืืืืืืืืช ืฉืื ืื ื ืืืืจืื ืืขืืืื ืขื ืจืืืงื ื vite. ืืฆื ืืฉืจืช ืจืืืืก ืืชืคืงื ืืื ืฉืจืช API ืฉืืืืคื ืืืืืืื ืืืืข ืืืืืืจ ืงืืืคืื ื ืื ืื JSON ืืคื ืืจืืฉื.
ืืืฉืืืื ื React On Rails ืืื ืจืฆืื ื ืจืื ืืจืื ืืืชืจ ืคืฉืื ืืืื ืืืืืกืื. ืืื ืื ืืชืืื ืืืคืืืงืฆืืืช ืืืืืืช ืฉืฆืจืืืืช Server Side Rendering ืื ืืืคืืืืืืฆืืืช ืืื ืื ืืื ืืืคืืืงืฆืืืช ืฆื ืืงืื ืืื ืืืชื ืชืืฆืื ืืืืจื ืืืืื.1 419
ืืื ืืกืืื ืืช ืืงืืืคืื ื ืื ืืจืืฉืื ื ืฉืื ื.
ืืฉืืื ืืจืืืช ืืช ืืขืืื ื ืื ืืคื ืืืืืื ืฉื ืจืืืืก. ืืงืืืฅ
config/routes.rb ืื ื ืืืฆื ืืช ืืฉืืจื:
get 'inertia-example', to: 'inertia_example#index'
ืืืงืื ืืจืืืจ app/controllers/inertia_example_controller.rb ืื ื ืืืฆื ืืช ืืืืืจื:
class InertiaExampleController < ApplicationController
def index
render inertia: 'InertiaExample', props: {
name: params.fetch(:name, 'World'),
}
end
end
ืืื ืื ืืชืฉืืื ืืฉืืื ืฉืืชืืื ื ืืืชื ืืช ืืงืจืืื - ืืืืคื ืืืืข ืืคืจืืืจ name. ืืืื ืจืฆืื, ืืคืจืืืจืื ืืงืืืคืื ื ืืช ืืขืืื ืืืืขืื ืืืงืื ืืจืืืจ ืฉืืคืขืื render, ืืื ืื ืฉื ืืขืืื ืืืฆืื.
ืืืกืคืช ืงืืืคืื ื ืื
ืืืื ื ืขืืื ืืช ืืขืืื ื ืืฆืื ืืช ืืื ื ืืืืืฆืืช ืืงืืืคืื ื ืื ืฉืื ืื ืฉืื ืืืชื ืืื ืคืขืืื ืขื ืืืฃ. ืืขืืืื ืขื ืงืืืคืื ื ืืืช ืืื ืจืฆืื ืขืืื ืืืืืง ืืื ืจืืืงื. ืื ื ืืืฆืจ ืชืืงืืื ืืืฉื ืืฉื app/javascript/components ืืชืืื ืฉื ืืช ืืงืืืฅ Counter.tsx ืืื ืืชืืื:
import { useState } from 'react'
export default function Counter() {
const [count, setCount] = useState(0)
return (
<div className="flex flex-col items-center justify-center h-screen bg-gray-100">
<h1 className="text-3xl font-bold mb-4">Counter: {count}</h1>
<div className="space-x-4">
<button
onClick={() => setCount(count - 1)}
className="px-4 py-2 bg-red-500 text-white rounded hover:bg-red-600 transition"
>
-
</button>
<button
onClick={() => setCount(count + 1)}
className="px-4 py-2 bg-green-500 text-white rounded hover:bg-green-600 transition"
>
+
</button>
<button
onClick={() => setCount(0)}
className="px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600 transition"
>
Reset
</button>
</div>
</div>
)
}
ืืื ืืงืืืคืื ื ืื InertiaExample ืื ื ืืืกืืฃ ืคืงืืืช import:
import Counter from '@/components/Counter';
ืืฉืืืืฉ ืืงืืืคืื ื ืื:
<Counter />
<Counter />
<Counter />
ืืฃ ืืื ืจืฆืื ืฉื ื ืื ืืืื ืืื ืืื
ืืืื ืจืฆืื ืืฉ ืขืื ืื ืขื ืืื ืืกืฃ ืืืืืชื ืกืคืจืืืช ืชืื ืืืช ืืื ืืืืืคื ืื ืืช React Router ืืืืคืฉืจืช ื ืืืื ืฆื ืืงืื ืืื ืืคืื. ืืืื ื ืจืื ืืื ืื ืขืืื.
ืื ื ืืขืืื ืืช config/routes.rb ืืื ืฉืืืื ืืช ืฉื ื ืื ืชืืืื:
get 'inertia-example', to: 'inertia_example#index', as: :home
get 'inertia-about', to: 'inertia_example#about', as: :about
ืืืืจ ืืื ืื ื ืืขืืื ืืช inertia_example_controller.rb ืืชืืื ืืื:
* frozen_string_literal: true *
class InertiaExampleController < ApplicationController
def index
render inertia: 'InertiaExample', props: {
name: params.fetch(:name, 'World'),
about_path:,
}
end
def about
render inertia: 'About', props: {
home_path:,
}
end
end
ืื ื ืืืฆืจ ืขืืื ืืืฉ ืืงืืืฅ app/javascript/pages/About.tsx ืขื ืืชืืื ืืื:
import { Link } from '@inertiajs/react'
export default function About({
home_path
}: {
home_path: string,
}) {
return (
<div>
<Link href={home_path}>Back home</Link>
</div>
)
}
ืืืขืืื ืืช ืืฃ ืืืืช ืืงืืืฅ InertiaExample.tsx ืืืืกืืฃ ืื ืื ืืช ืืืื ืง:
export default function InertiaExample({ name, about_path }:
{ name: string,
about_path: staring }) {
return (
<>
<Head title="Inertia + Vite Ruby + React Example" />
<div className={cs.root}>
<Link href={about_path}>About Us</Link>
ืขืืฉืื ื ืจืื ืื ืงืจื ืคื:
1. ืืงืื ืืจืืืจ ืืขืืืจ ืืช ืื ืชืืืื ืืงืืืคืื ื ืืืช. ืื ืชืืืื ืืืืืจืื ืืชืืจ ืคืื ืงืฆืืืช (ืืกืื ืื ืจืืืืก) ืื ืฉืื ืืฉืืืช ืขืฆืื ืืืืืคื ืืขืชืื ืื ื ืฆืืจื ืืขืืื ืืืจืืืืช ืืืคืืืงืฆืื.
2. ืงืืืคืื ื ืืช Link ืืืืฆืจืช ื ืืืื ืฆื ืืงืื.
ืืฉืืืืฆืื ืขื ืืืื ืง ืืืฃ ืืืืช ืืืขืืจ ืืืฃ ืืืืืช ืืืคืืคื ืืืฆืข ืืงืฉืช JSON ืืืงืื ืืช ืืชืืื ืืื ืืืื:
{
"component": "About",
"props": {
"errors": {},
"home_path": "/inertia-example"
},
"url": "/inertia-about",1 419
ืืืืืจ ืจืืืงื ืืจืืืืก ืขื Inertia
ืืฉ ืืคืชืื ืจืืืืก ืฉืืืฉ ืื ืืืืืื FrontEnd ืืืขืฉื ืืื ืืื ืืืืชืจ ืขื ืืชืืืช JavaScript, ืืืฉ ืืืจืื ืฉืืกืืื ืฉืืื ืืงืื ืืืืงืจ ืืื ืืคืจืื ื ืื ื ื Rails ืืฆืื ื ืืืจ ืคืฉืื ืื ืืื ื ืืชื ืคืืชืจืื ื ืื ืืฆื ืืฉืจืช. ืื ืืชื ืฉืืืืื ืืืื ื ืืฉื ื ืกืืืื ืืื ืฉืืืื ืชืืืื ืืช ืกืคืจืืืช inertia. ืื ืกืคืจืื ืฉืืืืจืช ืืฆืืจื ืืืื ืืช ืงืื ืืคืจืื ื ืื ื ืืืคืืืงืฆืืืช Rails. ืืื ืจืฆืื ืืื ืืชืืจื ืฉื React On Rails ืืืชืืงืืช ืื ืืืื ืืชืื ืืืืฉืื ืืืืขืืจืช ืืืืข ืืฆื ืืฉืจืช ืืฆื ืืืงืื. ืืคืืกื ืื ื ืจืื ืืช ืขืงืจืื ืืช ืืขืืืื ืืืจืืืืื ืฉื ืืื ืจืฆืื.
ืืฆืืจืช ืืคืจืืืงื
ืืฉืืื ืืืฆืืจ ืคืจืืืงื Rails ืขื Inertia ืื ื ืืฉืชืืฉ ืืคืงืืืืช ืืืืืช:
$ rails new inertia-demo
$ bundle add inertia_rails
$ bin/rails generate inertia:install
ืืคืงืืื ืืืืจืื ื ืืจืืฆื wizard ืื ืื ื ืฆืจืื ืืืืืจ ืืช ืืคืจืืืืืืจืง ืื ืื ื ืจืืฆื ืืขืืื. ืื ื ืืืืจ ืจืืืงื ืืืืืื ืื ืืื ืืื ืื ืื ืชืืื ืื ื vue ื svelte.
ืืืืจ ืกืืื ื wizard ืืฉ ืื ืืชืืงืืืช app/javascript ืืกืคืจ ืชืืงืืืช ืืืฉืืช: assets, entrypoints ื pages. ืืคืฉืจ ืืืืกืืฃ ืขืื ืชืืงืืืช ืืื ืฉืชืจืฆื. ื ืงืืืช ืืื ืืกื ืืืคืืืงืฆืื ืืื ืืงืืืฅ entrypoints/application.js.
ืืฃ ืืื ืจืฆืื ืจืืฉืื ืฉืื
ืืืฃ ืืจืืฉืื ืืืื ืจืฆืื ืืืขืฉื ื ืืฆืจ ืืืจ ืืชืื ื wizard. ืืื ื ืงืจื InertiaExample ืืื ืื ื ืืืฆืืื ืืช ืืงืื ืฉืื ืืงืืืฅ app/javascript/pages/InertiaExample.tsx. ืืืื ื ืงืจื ืืืชื ืืื:
import { Head } from '@inertiajs/react'
import { useState } from 'react'
import inertiaSvg from '/assets/inertia.svg'
import reactSvg from '/assets/react.svg'
import viteRubySvg from '/assets/vite_ruby.svg'
import cs from './InertiaExample.module.css'
export default function InertiaExample({ name }: { name: string }) {
const [count, setCount] = useState(0)
return (
<>
<Head title="Inertia + Vite Ruby + React Example" />
<div className={cs.root}>
<h1 className={cs.h1}>Hello {name}!</h1>
<div>
<a href="https://inertia-rails.dev" target="_blank">
<img className={cs.logo} src={inertiaSvg} alt="Inertia logo" />
</a>
<a href="https://vite-ruby.netlify.app" target="_blank">
<img
className={\${cs.logo} ${cs.vite}\}
src={viteRubySvg}
alt="Vite Ruby logo"
/>
</a>
<a href="https://react.dev" target="_blank">
<img
className={\${cs.logo} ${cs.react}\}
src={reactSvg}
alt="React logo"
/>
</a>
</div>
<h2 className={cs.h2}>Inertia + Vite Ruby + React</h2>
<div className="card">
<button
className={cs.button}
onClick={() => setCount((count) => count + 1)}
>
count is {count}
</button>
<p>
Edit <code>app/frontend/pages/InertiaExample.jsx</code> and save to
test HMR
</p>
</div>
<p className={cs.readTheDocs}>
Click on the Inertia, Vite Ruby, and React logos to learn more
</p>
</div>
</>
)
}
ืืืจ ืจืืฉืื ืฉืงืืคืฅ ืืขืื ืืื ืืฆืืจืช ืืงืืืคืื ื ืื:
export default function InertiaExample({ name }: { name: string }) {
ืืฉืืื ืืืฆืืจ ืืช ืืขืืื ืืฉ ืืืขืืืจ ืืฉืชื ื name. ืชืืืจื ืืช ืื ืื ืชืืฃ ื ืืืืจ ืืืื ืืื ืืืืื ืืืืคื ืืื ืืืืข.
ืืฉืืืืฉ ื useState ืจืืื ืืืืจื ืืจืืืงื ืืืืื ืืืชื ื ืฉืงืืืคืื ื ืืืช ืจืืืงื ืื ืงืืืคืื ื ืืืช ืฆื ืืงืื - ืืื ืจืฆืื ืชืืื ื Server Side Rendering ืืื ืื ื React Server Components. ืื ืื ืจืืืชื ืืชืืืกืืช ืืชืืขืื ืื ืืฉื ื Caching ืืืจื SSR ืื ืฉื ืจืื ืฉื Use Case ืืืืชืจ ืคืืคืืืจื ืืื ืืคืืืงืฆืืืช ืฆื-ืืงืื.
ืืงืืืคืื ื ืื ืืืืืืืช Head ืืืคืฉืจืช ืืืื ืชืืื ืืืืื ืืื ืืจืืฉ ืืขืืื ืืืื ืืฉืืจื:
<Head title="Inertia + Vite Ruby + React Example" />
ืงืืืขืช ืืช ื title. ืืฉืืื ืฉืื ืืขืืื ืื ืืื ืืกื ืืงืืืฅ app/views/layouts/application.html.erb ืืช ืืฉืืจื:
<title inertia><%= content_for(:title) || "Inertia Demo" %></title>
ืืื ืจืฆืื ืชืืื ื CSS Modules ืืืื ืืื ื ืืงืืืกืื:
import cs from './InertiaExample.module.css'
...
<div className={cs.root}>1 419
ืืื ืืืจืื ืฉืืคืืืืื ืืืชื ื AI
ืืืื ื ืืจืื ืืืฉืืืื ืืื ืืืจืื ืฉืขืืืื ืฉืืืชื ืื ืืคืืืืื ืืืื - ื AI ืื ืืืคืื ืืช ืืืชืื ืชืื ืืืืืชืจืื, ืื ืืืจ ืืืืคื. ืืื ืฉืืืชืจ ืงืื ื ืืชื ืื ืืฆืืจืื ืืืชืจ ืืชืื ืชืื ืืชืืืง ืืืชื. ืืื ืฉืืขืจืืืช ืืืคืืืช ืืืชืจ ืืืจืืืืช ืื ืืฆืืจืื ืืืชืจ ืื ืฉืื ืฉืืชืื ื ื ืืืชื ืืืืฆืื ืืช ืืฉืืืืืช ืืื. ืืืจ ืืืื ืื ืื ื ืืืืืื ืืื ืืช ืืืฆืจืื ืืืืื ืืืื ืฉืื ืื ื ืืคื ื ืขืฉืจ ืฉื ืื ืขื ืืจืื ืคืืืช ืื ืฉืื, ืืื ื ืื ืืืจื ื ืืืืฉืื ืืขืืื ืขื ืืงืกืคืืืจืจ 6 ื Windows 95 ืืืืฆืืจ ืืืืื ืืืื ืืช. ืืื ืืื, ืืฉืื ืื ื ืืืชืืื ืืขืจืืืช ืืชืืืืืืช ืืืชืจ ืืืืจ ืืืชืจ ืขืืื ืืชืืื ื ืืฉืชืคืจ.
ืกืืคืืจ ื ืืกืฃ ืฉืื ืืคืืื ืืืชื ืืืื ืืื ืืขืืืช ืืืืื, ืืืืื ืืืขืจืืืช ืฉืื ืฉืื ืืืชืืื ืืื ืืืืื. ืื ืฉืื ืชืืื ืืชืื ืืขืจืืืช ืืื ืืืืื, ืื ื ืืืืชื ืืขืืื ืฉืื ืืืืืช ืืืืื ืก ืืืกืืก ืื ืชืื ืื ืฉื ืื ืืชืจ ืืื ืืจื ื ืื ืืืื ืืื ืคืชืืืื ื SQL Injection. ืขื ืืืื ืื ืื ื ืืื ืื ืชืฉืชืืืช ืฉืืฉืคืจืืช ืืช ืืืฆื ืืื ืื ืืชืงืืคื ืืงืจืืื ืืืื ืฉืื ืืจืื ืืขืจืืืช ืื ืืืืืืืืช ืื ืืืืืืืช ืืืืช ืชืฉื ื ืืืืื.
ืืื ืื ืืืื ืืืฉืืฉ? ืืืช ืืจืฉืืื ืฉืื:
1. ืคืืืง ื ืืื ืืคืืฉืื ื - ืืืืืืช ืฉื AI ืืืฆืืจ ืงืืคืืื ืื ืืืื ืื ืฉื ืคืืฉืื ื ืชืืืื ืืืชื ื ืชืงืืคื ืืจืืื ืืืื. ืจืง ืื ืืืื ืขืื ืืืืชืจืืช ืืืงืจ ืืืืื ืฉืืฆืืื ืืืฆืข ืืชืืืืช ืงืืืืช ืืื ืืขืงืืฃ ืืขืจืืช ืืืืื ืงืืื ืฉื ืืื ืืื ืงืื ืคื. ืืืื ืงืฉื ืืืื ืืกืืื ืขื ืืืืื, ืงืื ืืืืืื ืืชืืื. ืืื ืืืื ื ืืชื ืืืืืฃ.
2. ืืชืืืืช ืืืืืช ืืืืืช ืืขืื ืืฉืื ืื ื ืืจืืืื ืื ืืืขืืืื ืืขืืืื. ืื ืืืจ ืงืืจื ืขื ืืืื ืืจืืืืช ืืจืืืื ืืช ืขืืืื ืืืืื ืืืืืช ืงืฉื ืืืืื ืืช ืืจืื ืืืงืฆืืขืืช ืืืืืชืืช ืฉื ืืืขืื.
3. ืืืืืืฆืื ืืืืืช ืืืืืช ืืชืืจ ืขืฆืื. ืืฉ AI ืืืื ืืคืชืืจ ืืฉืืืื ืืช ืฉืืขืืจื ืืืืช ืืชื ืืคืชื ืืจืืื ืขืืืื ืืจืืขืื ืืื ืืฉืื ืฉืงืฉื ืืืชืืืจ ืขืืื.
4. ืืืืืืช ืืืื ืงืื ืื ืืืชืจ. ืืฉืืื ืฉืืื ืืฉ ืชืฉืืื ืืื ืคืืืื, ืืื ืชืืืื ืืืื ืืื ืืืืื ืขื ืืคืฉืจืืืืช ืืืฉืืช. ืื ืืชืืืจ ืืงืืฉื ืืืฆืื ืืืืืืฆืื ืฉืื ืื ื ืืืจ ืจืืืื ืืขืืืื ืขื AI.
ืื ืืคืืื ืืชืื ืืขืืื ื AI? ืืืื ืืชื ืืืฉืืื ื ืฆืืื ืืืชืืืื ืขื ืืืชืืจืื? ืืฉืื ืืฉืืืข ืืชืืืืืช ืคื ืื ืืืืืจื.
1 419
ืืืง ืืฉืื ืืืืืืืจ ืืื ืืขืจืืืช ืืืฉื, ืืืืืจ ืื API, ืืื ืืืืืืืช. ืืฉืืขืจืืช ืืืฉื ืืงืืืช ืืืืขื ืืื ืฆืจืืื ืืืขืช ืื ืฉืื ืื ืืช ืืืืืขื ืืืืช - ืืขืจืืช ืืืจืช? ืชืืงืฃ ืืืื ื? ืื ืื ืืกืคืจืื ืฉืืืืืจ ืืจื ืืืคืืคื ืืืืฉื ืฉืื? ืืืืฉ ืฉืืืคืฉ ืกืคืจ? ืืื ืืื ืืฉ ืืจืฉืืืช ืฉืื ืืช, ืืืืืืช ืฉืื ืืช ืืืื ืื ืื ืืื ืขืฉืื ืืงืื ืชืฉืืื ืฉืื ื.
ืืืืขืช HTTP ืืืืืช ืืกื ืืื 3 ืืืงืื ืืื ืืคืฉืจ ืืืชืื ืืืืข: ืฉืืจืช ืืืืื ืฉืืืืืช ืืช ืืคืืขื ืืื ืชืื ืขืืืื ืื ืื ื ืืืืจืื, ืืืืง ืืืืชืจืืช ืืืืืง ืชืืื ืืืืืขื. ื ืชืื ื ืืืืืืช ื ืฉืืืื ืืืืืง ืืืืชืจืืช.
ืืฉ ืฉื ื ืกืืืื ืฉื ื ืชืื ื ืืืืืืช ืฉืื ืื ื ืืืืืื ืืืฆืื ืืืืชืจืืช ืฉื ืืงืฉืืช HTTP. ืกืื ืืื ื ืงืจื Cookie ืืื ืืืชืจืช ืฉื ืจืืืช ืื:
GET /docs/introduction HTTP/1.1
Host: ai-sdk.dev
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
accept-language: en-US,en;q=0.9
cache-control: no-cache
cookie: ko_id=7827ad98-2a94-440f-be5b-6dd5cfd84161; _hp2_id.3132448398=%7B%22
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36
ืืืงืฉื ืืืืืื ืื ืกื ืืืฉืื ืืฉืื ืขื ืืืืื /docs/introduction ืืืขืืืจื ืืฉืจืช ืืกืคืจ ืืืชืจืืช HTTP. ืืืช ืืืืชืจืช ื ืงืจืืช cookie ืืืื ืืืืื ืขืจื ืฉืงืฆืช ืงืฉื ืืงืจืื. ืื ืืกืืจ ืื ืื ื ืื ืฆืจืืืื ืืงืจืื ืืืชื ืื ืฉืฆืจืื ืืงืจืื ืืืชื ืื ืฉืจืช ื Web. ืืฉืจืช ืงืืจื ืืช ืืขืจื ืืืืื ืืื ื ืื ืืื ืืื ืฉืืืื. ืืื ืขืจื ื cookie ืืชืืจืื ืืืืืช ืืืืืฉ ืืชื ืฉืืืืื? ืคื ื ืื ืก ืืชืืื ื ืชืืืื ืืืืืืืช. ืืฉืชืืฉ ืืืื ืืืคืก ืขื ืฉื ืืฉืชืืฉ ืืกืืกืื, ืืฉืจืช ืืืืง ืฉืืกืืกืื ื ืืื ื ืืจืืฉื ืืืกืืก ืื ืชืื ืื ืืื ืฉื ืืืฉืชืืฉ ืขืจื ืืงืจืื ืฉื ืงืจื ืืืื Session, ืืช ืืขืจื ืืืงืจืื ืืื ืืื ืืืืืจ ืืืืชื ืชืฉืืืช HTTP ืฉื ืฉืืืช ืืืจื ืืืืื ืืืืคืก. ืืืื ืืืืื ืืืคืืคื ืืฆืจืฃ ืืช ืืืชื ืขืจื ืืงืจืื ืืื ืืงืฉื ืืชืืจ ืืืชืจืช ื HTTP ืฉื ืงืจืืช cookie. ืืฉืจืช ืืงืื ืืช ืืขืจื ืืืงืจืื ืืื, ืืกืชืื ืืืกืืก ืื ืชืื ืื ืขืืืจ ืืืื ืืฉืชืืฉ ืืื ื ืืฆืจ ืืื ืืืข ืื ืฉืื ืืช ืืืงืฉื.
ืืขืจืืืช ืจืืืช ืื ืืฆืืืืช ืืคืกืื ื HTML ืืืืื ืื ืขืืืจืืช ืืจื ืืคืืคื. ืขืืืจื ื ืืฆืจ ืื ืื ืื ื ืืกืฃ ืฉืืื ืืืชืจืช ืืฉื Authorization. ืืืขืจืืช ืืื ื ืืฆืข ืืืืฉืื ืชืืืื ืืืืืืช ืืืืฆืขืืช ืงืจืืืช HTTP POST ืขื ืืืื ืืกืืื (ืืืฉ ืืืื ืืืืฉืช ืืืคืก), ืื ืืื ืืฉืจืช ืืืืช ืืช ืืืฉืชืืฉ, ืืืจืื ืขืจื ืืงืจืื ืืืฉืืืจ ืืืชื ืืืกืืก ืื ืชืื ืื ืืืฉืื ืืืจื ืืช ืืืชื ืขืจื ืืืขืจืืช ืฉืคื ืชื ืืืื. ืืืงืฉืืช ืืืืืช ืืืชื ืืขืจืืช ืชืฆืจืฃ ืืืชืจืช HTTP ืืฉื Authorization ืืชืฉืื ืื ืืช ืืืืื ืฉืืื ืงืืืื. ืืงืฉื ืืื ืชืืจืื ืื:
POST /book/1234567890/ HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.dGVzdF91c2VyX2RhdGE.abc123dummySignature
Content-Type: application/json
Content-Length: 109
{
"name": "The Art of Fiction",
"author": "Jane Doe",
"price": 19.99,
"rating": 4.5,
"instock": true
}
ืืฉืื ืื ื ื ืืืฉืื ื API ืชืืื ื ืจืฆื ืืืจืจ ืืื ืืืชื API ืืืื ืืช ืืืฉืชืืฉืื - ืื ืื ืชืื (ืื ืืืฉืื) ืื ืืคืฉืจ ืืืฆืข ืืืืืืช ืืืงืื ืืกืืืื ืืืฉื ืืืืืื ืืืชืจืช HTTP ืืืืืื ืคืืจืื ืขืืื ืืืขืืืจ ืืช ืืกืืืื ืืืืฉื ืืืงืฉืืช ืืืืืช.
ืกืืืื
ืืขืจืืืช ืจืืืช ืืืื ืืจื ื ืฉืืืืช ืืืืจ ืขื ืืขืจืืืช ืืืจืืช ืืฆืืจื ืืืืืืืืช ืืจื API. ืืชืืจ ืืฉืชืืฉืื ืฉื ืืืชื ืืขืจืืืช ืฉืืื ืื ื ืืืืื ืื ืืช ื APIs, ืื ืืื ืืืืื ืืื ืืืขืจืืืช ืื ืืืืช ืืื ืืื ืืืฉืชืืฉ ืืื ืืฆืืจื ืืฆืืจืชืืช. ืงืืืืื ืืืื ืจืืื ืืชืงืฉืืจืช ืขื ืืขืจืืืช ืืจื REST API - ืื ื ืืฉืชืืฉ ืืจืื ืืคืงืืื ืืฉื curl, ืืฉ ืืื ืืจืคื ืืฉื postman ืฉืืจืื ืื ืฉืื ืืืืืื ืืืฉ ืืืื ืจืืื ื ืืกืคืื. ืื ืืฉื ื ืืืื ืืื ืชืืืจื ืืืืจืืช ืขื ืืื ื ืฉื ืืงืฉืืช ืืชืฉืืืืช HTTP ืืืื ื ืฉื ืื ืชืืืื ื API ืืขืืจื ืืื ืืืืื ืืื ืืืชืจ ืืช ืืืขืจืืืช ืืืืฉืชืืฉ ื ืืื ืืืืชื ืืืื.1 419
ื'ืืืกืื, ืฉืื ืงืืฆืืจ ื JavaScript Object Notation, ืืื ืฉืคื ืฉืืืืฆืื ืขื ืืื ืืืืืก ืงืจืืงืคืืจื ืืฉื ืช 2,000. ืื ืืืื ื HTML ืฉืืชืืจืช ืืกืืืื, ื'ืืืกืื ืืื ืฉืคื ืืชืืืืจ ืืืืืงืืื ืืืืืจ ืืืืข ืืืื ื, ืืื ืืืืชืจืื ืืืืื ืฉืื ืืื ืฉืงื ืืืื ืืืืฉืืื ืืงืจืื ืืืืืงืื JSON - ืืจืื ืืืชืจ ืงื ืืืฉืจ ืืงืจืื ืงืืฆื HTML. ืื ื ืืืืื ืืงืืืฅ JSON ืฉืืชืืื ืืงืืืฅ ื HTML ืฉืืจืืืชื ืงืืื:
{
header: "hello world",
text: "HTML was also invented by Tim Berners Lee along with HTTP and the first web browser"
}
ืืจืืจ ืฉืื ืืืจ ืฉืืคืฉืจ ืืชืืจ ื HTML ืืคืฉืจ ืืชืืจ ืื ื JSON, ืืื ื JSON ืืื ืืืชืจ ืชืืฆืืชื, ืืืื ื ืืืื ืืฉืื ืงื ืืืชืจ ืืคืืขื ืื ืขืืืจ ืชืืื ืืช ืืืฉื. ืื ืชืืื ืช ืืืฉื ืฉืืงืืืช JSON ืฆืจืืื ืื ืืืืื ืงืื ืฉืืฆืื ืืช ื JSON, ืืื ืชืืื ื ืชืืื ืืืฆืื ืืช ื JSON ืืฆืืจื ืฉืื ื - ืืคืืคื ืืืื ืืจื ื ืืืคืื ืืช ื JSON ื HTML ืืืฆืื ืืช ืื; ืืคืืืงืฆืืืช ืืืืคืื ืชืฉืชืืฉ ืืืืืข ืฉื JSON ืืื ืืืื ืฉืืืช ืกืคืฆืืคืืื ืขื ืืืกื ืืืคืืืงืฆืื ืืืคืืืงืฆืืืช ืื ืืจืืืื ืชืฉืชืืฉ ืืงืื ืืฉืื ืืื ืืืืื ืื JSON ืื ืฆืจืื ืืืืคืืข ืขื ืืืกื ืืืืฆืื ืืืชื.
ืืื ื ืืืช ืืืืื ืืฉืืืจืื ืืืขืจืืืช ืืื ืจืืืช - ืืืงืื ืืืืืืจ HTML ืืืชืจืื ืืชืืืื ืืืืืืจ JSON. ืืขืจืืืช ืฉืื ืืช ืืงืื ืืช ื JSON ืืื ืืืฆืืื ืืืชื ืื ืืืช ืืฆืืจื ืืืจืช. ืืืืืจ ืืืืืืื ืืื ืฉืชื ืืขืจืืืช ื ืงืจื API ืื ืืขืืจืืช ืืืฉืง ืชืื ืืชื. ืืฉืืคืืคื ืืื ืืจื ื ืคืื ื ืืฉืจืช, ืืงืื ืืืืืงื JSON, ืืืคื ืืืชื ื HTML ืืืฆืื ืขื ืืืกื ืื ืื ื ืืืืจืื ืฉืืฃ ืืืื ืืจื ื ื ืืขื ืืจื API. ืืฉืืคืืืงืฆืื ืคืื ื ืืฉืจืช, ืืืฉืืช ืืืืืงื JSON, ืืคืขื ืืช ืืืชื ืืืฉืชืืฉืช ืืืืืข ืืื ืืืฆืื ืคืจืืื ืขื ืืืกื ืื ืื ื ืืืืจืื ืฉืืืคืืืงืฆืื ืืชืงืฉืจืช ืขื ืืฉืจืช ืืจื API. ืืืกืฃ ืืืงืฉืืช ืฉืฉืจืช ืืืืข ืืืคื ืืื ืืืืกืฃ ืืชืฉืืืืช ืฉืืื ืืืืืจ ืืื ืืืืจืช ื API - ืืืืจืช ืืฉืคื ืื ืืคืฉืจ ืืืืจ ืขื ืืขืจืืช ืื.
ืื ืืคืฉืจ ืืขืฉืืช ืขื REST API
ืจืืข, ืื ืืืืคื ืืืืขื ืืคื ืืืืื REST? ืื API ืืื ืงืืฆืืจ ืฉื ืืืฉืง ืชืื ืืชื ืืืืืฆื ืืืืืจ ืืื ืฉืชื ืืขืจืืืช ืืืืื REST ืืื ืื ืจืืฉื ืชืืืืช ืืคืขื ืฉื Representational State Transfer. ืืช ืืฉื ืืื ืืืฆืื ืจืื ืคืืืืื ื ืืฉื ืช 2000 ืืื ืืืืฆื ืฉืืืช ืขืืืื ืืกืืืืช ืฉื ืืืฉืงืื ืืื ืืขืจืืืช. ืืืืืืจ ืืกืื REST API ืื ืชืื, ืฉืื ืฉื ืืงืืืฅ ืืืงืฉืช ื HTTP, ืืืืฆื ืืฉืื. ืชืฉืืืช ืืฉืจืช ืืืืฆืืช ืืช ืืชืืื ืื ื State ืฉื ืืืชื ืืฉืื. ืื ื ืืืฉื ืฉืืืืื ืงืื ื ืชืขืืืจ ืืืืืืจ ืืื ืืช ืืืืฉืืื - ื ื ืื ืฉืื ืื ื ืืื ืื ืืขืจืืช ืื ืืืื ืกืคืจืื ืืกืคืจืื ืืืืขืจืืช ืืืคืฉืจืช ืืืฆืื ืคืจืืื ืขื ืกืคืจืื ืืคื ืืืื ืืกืคืจ. ืกืคืจืื ืืืืืื ืขื ืืื ืืืื ืฉื ืงืจื ISBN ืืืื ื ืืชื ืืืฉืชืืฉ ื ISBN ืืื ืืืืฆื "ืกืคืจ". ื ืชืื ืืืืืื ืืืขืจืืช ืืกืคืจืื ืฉืื ื ืืืื ืืืืืช:
/book/0764363778
ืืงืฉืช ืจืฉืช ืืฉืคืช HTTP ืืืฉืื ืื ืืืืื ืืืืืช:
GET /book/0764363778
ืืืชืฉืืื ืฉืืฉืจืช ืืืืืจ ืขืฉืืื ืืืืืช:
{
"name": "JavaScript: The Good Parts",
"author": "Douglas Crockford",
"rating": 4.4,
"price": "16$"
"instock": 10
}
ืืขืจืืช ืืืฉื ืฉืชืจืฆื ืืืฉืชืืฉ ื API ืืื ืืงืื ืืืืข ืขื ืืกืคืจ ืชืฉืื ืืืืขืช HTTP ืืกืื GET ืขื ืืืื ืืกืคืจ, ืชืงืื ืืช ืืคืจืืื ืฉื ืืกืคืจ ืืชืฆืื ืืช ืืคืจืืื ืืฆืืจื ืฉืืชืืืื ืื. ืืื ืงืืจื ืื ืืืขืจืืช ืืฉ ืืืคืก ืฉืืืคืฉืจ ืืืกืคืช ืกืคืจืื ืืืขืจืืช? ืื ืืช ืื ืืคืฉืจ ืืคืชืืจ ืขื ืืงืฉืช HTTP, ืืคืขื ืืงืฉืช PUT. ืืืขืจืืช ืชื ืื ืืช ืืืืคืก ืืฆืืจื ืฉืืชืืืื ืื ืืืฉืืืฉืชืืฉ ืืืฉืจ ืืืืกืืฃ ืกืคืจ ืชืืฉืื ืืงืฉืช PUT ืฉื ืจืืืช ืื:
PUT /book/1234567890
{
"name": "The Art of Fiction",
"author": "Jane Doe",
"price": 19.99,
"rating": 4.5,
"instock": true
}
ืืืืฉืง ืืกืื REST ืืืจื ืืื ืื ืืฉืื ืืชืืื ืืฉื ืืืฉืื (ืืืืืื ืฉืจืืื ื ืื ืืื book) ืืืคืขืืื ืืืจืื ืืืคืืข ืืืื ืกืคืฆืืคื ืฉื ืืืชื ืืฉืื. ืืคืืขื ืืงืืข ืื ืืฉ ืืขืฉืืช ืขื ืืืชื ืืฉืื ืืืจื ืืื ืืคื ืืชืื ืืช ืืืื:
1. ืคืขืืืช GET ืขื ืืืฉืื, ืืื ืืฆืืื ืืืื ืืฉืื, ืืืฉื GET /books ืืืืืจ ืืื ืืงืก ืฉื ืืคืจืืืื ืืืืืจ ืืช ืื ืืกืคืจืื.
2. ืคืขืืืช GET ืขื ืืืฉืื ืขื ืฆืืื ืืืื ืคืจืื ืืืืืจ ืืืืข ืขื ืืืชื ืคืจืื, ืืืฉื GET /books/123 ืืืืืจ ืคืจืืื ืขื ืกืคืจ ืฉืืืืื ืฉืื ืืื 123.
3. ืคืขืืืช POST ืขื ืืืฉืื, ืืื ืืฆืืื ืืืื, ืชืืฆืืจ ืคืจืื ืืืฉ ืืืืชื ืืฉืื. ืืืฉื POST /books ืชืืฆืืจ ืกืคืจ ืืืฉ.
4. ืคืขืืืช PUT ืขื ืืืฉืื ืขื ืฆืืื ืืืื ืชืขืืื ืืช ืืคืจืืื ืฉื ืืืชื ืืฉืื ืืืืืื ืคืขืืืช PUT /books/123 ืชืขืืื ืืช ืืคืจืืื ืฉื ืกืคืจ 123.
5. ืคืขืืืช DELETE ืขื ืืืฉืื ืขื ืฆืืื ืืืื ืืืืงืช ืืช ืืคืจืื, ืืืืืื DELETE /books/123 ืชืืืง ืืช ืกืคืจ ืืกืคืจ 123.
ืขืืืืืช ืืืืืืืช1 419
ืืืจืื: ืื ืื ืืขืฆื API
ืืคืขื ืื ืื ื ืขื ืืืจืื ืืกืืกื ืฉืื ื ืืงืืื ืฉืืขืืืจ ืืื ืฉื ืืืืงืืช ืืื ืืื ืืืฆืจ ืืื ืื ืืืคืชืืื ืืืืื ืืช ืืืืืื ืืืืืจื ืฉื ืืื ืืืืฉืืื ืืืฉืืืื ืืคืืชืื ืืขืจืืืช ืืื ืืืื.
ืืื ืขืืืืื ืืคื ืืื ืืจื ื
ืืืคื ืืชืืืืื ืืืืจ ืขื APIs? ืืืืช ืฉืืกืืคืืจ ืืื ืืฉ ืืจืื ืืชืืืืช ืืคืฉืจืืืช ืืื ืืืื ื ืืืจ ืืืชืืื ืขื ืืคื ืืื ืืจื ื. ื ืืื ืืืฉืงื ืคืืชืื ืืื ืืขืจืืืช ืืื ืงืืืืื ืืคื ื ืืืื ืืจื ื ืืื ืืืืคื ืื ืืืจืื ืขืืืืื ืืืื ืืืื ืืืฉืคืข ืืืื ืืืืืืืช ืืืื ืืจื ื.
ืืช ืืืื ืืจื ื, ืื ืืคืืืช ืืช ืืืื ืืืืืืืช ืฉืืคืขืืืืช ืืืชื, ืืืฆืื ืืื ืืจื ืจืก ืื ืืฉื ืช 1991 ืืืืื ืืืืืื ืืจืืฉืื ื ืฉืืื ืืืฆืื ื ืงืจืืช HTTP (ืจืืฉื ืชืืืืช ืฉื Hyptertext Transfer Protocol). ืืื ืคืจืืืืงืื, ืืืืืจ ืฉืคื, ืฉื ืืขืื ืืืืืืจ ืืื ืืืฉืืื ืืขืืืจืื ืืื ืืื ืืคืื ืืจืฉืช ืืืื ืืจื ื. ืืคืจืืืืงืื ืืืืืจ ืืืืื ืฉืื ืืืฉื ืืืื ืืืืืืง "ืืคืื" ืืืื ืืฃ ืืฉ ืืืื. ืืืืื ื ืจืื ืืื ืฉื ืงืืืฅ ืขื ืืขืจืืช ืืื ืืงืก ืืืืืื
/wiki/HTTP, /en/api/client-sdks ืื /arunsupe/semantic-grep. ืคืจืืืืงืื HTTP ืืืืืจ ืฉืื ืืืฉืื ืจืืฆื ืืืงืฉ ืืฃ ืืืืฉื ืืจืืืง ืืื ืฉืืื ืืืืขื ืฉืืืจืืืช ืืืืืื GET ืืืืจืื ืฉื ืืืฃ ืืืฉื:
GET /en/api/client-sdks/
ืืื ืืจื ืจืก ืื ืื ืืืฆืื ืืคืืคื ืืื ืืจื ื ืฉืืคืฉืจ ืื ืืงืจืื ืืช ืืืคืื ืืืื (ืฉืืื ืืชืืืื ืืคืืจืื HTML) ืืงืฆืช ืืืจืื ืื ืฉืื ืืืจืื ืืืฆืืื ืืคืืคื ื ืืื ืืจื ื ื ืืกืคืื ืืืจืืืื ืืช ืืคืืจืื ืฉื ืืืคืื. ื 1996 ืืื ืฉืืืชืจ ืื ืฉืื ืืชืื ืืคื ืืื ืืจื ื ืขืื ืืฆืืจื ืืืืฆืืข ืคืขืืืืช ืืจื ืืคื ืืืื ืืจื ื ืืืืืฆื ืืืื ื ืืืืคืก. ืืฉืืื ืืืืืฉ ืืคืกืื ืืื ืืจื ืจืก ืื ืขืืื ืืช ืคืจืืืืงืื HTTP ืืืืกืืฃ ืคืงืืื ืืฉื POST. ืืฉืืื ืืืืืฉ ืืืคืก ืขืืืื ืืื ืฆืจืื ืืฆืืื ืืช ืื ืชืื ืืืืฉื ืืืืจื ืืื ืฆืืจืฃ ืืืงืฉื ืืืืข ืืืืืคืก. ืื ื ืจืืชื ืืงืฉืช POST ืฉื ืืฆืจื ืืืืคืก:
POST /cgi-bin/subscribe.cgi HTTP/1.0
Host: www.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
name=Alice+Smith&email=alice%40example.com
ืื ืื ื ืฉืืื ืื ืฉืืชืืช ืืคืงืืืช POST ืืืคืืข ืขืื ืืืืง ืฉื ืืคืชืืืช ืืขืจืืื, ืืืืง ืื ื ืงืจื ืืืืชืจืืช ืฉื ืืืงืฉื ืืืคืฉืจ ืืืขืืืจ ืืืชื ืื ืืืงืฉืืช GET. ืืืจื ืกืืื ืืืืชืจืืช ืืฉ ืฉืืจื ืจืืงื ืืืืจืื ืฉืืจืช ืืขืจืืื ืฉื ืืืืคืก ืืืงืกื ืื ื ืงืจื "ืืืฃ ืืืงืฉื".
ืืืืจื ืืฉื ืื ื ืืกืคื ืืคืจืืืืงืื HTTP ืคืขืืื ื ืืกืคืื ืืืืื ืืคืจืืืืงืื ืืื ื ืืช ืืคืขืืื GET, HEAD, OPTIONS, TRACE, POST, PUT, PATCH, DELETE. ืงืื ืืฆื ืืฉืจืช, ืืืืืจ ืืืืฉื ืฉืืงืื ืืช ืืืงืฉื, ืืืจืื ืขื ืืืคืื ืืืงืฉื. ืืงืื ืืงืื ืืช ืืคืืขื, ืืช ืื ืชืื, ืืช ืืืืชืจืืช ืืืช ืืืฃ ืืืงืฉื ืืฆืจืื ืืืฆืข ืคืขืืื ืืืืืืืจ ืชืฉืืื ืืืคืืคื. ืืคืขืืื ืืชืฉืืื ืชืืื ืืฃ ืืื ืืจื ื, ืืคืขืืื ืืื ืชืืื ืชืืื ื ืืืคืขืืื ืืคื ืื ืืขืืื ืืืจ.
ื ืกื ืืช ืื - ืืคืขื ืืืื ืฉืืชื ืืืืฉืื ืืจืฉืช ืคืชืื ืืืคืืคื ืืช ืืืื ืืื ืืคืืชืื ืืขืืจื ืืืื Network. ืฉื ืชืืืื ืืจืืืช ืืช ืื ืืงืฉืืช ื HTTP ืฉืืืคืืคื ืฉืืื ืฉืืื ืืฉืจืช ืืืช ืชืฉืืืืช ืืฉืจืช ืืื ืืงืฉื.
ืขืืฉืื ืืืื ื ืืกืืฃ ืืคืืืงืฆืื
ืืคื ืืื ืืจื ื ืืชืืืื ืืฉืคื ืฉื ืงืจืืช HTML, ืืื ืื ืืืชื ืืืฆืื ืืื ืืจื ืจืก ืื. ืืฉืคื ืืืจืืืช ืืชืืืืช ืืชืืื ืืืฉืจ ืืชืืืืช ืืชืืจืืช ืืช ืืชืคืงืื ืฉื ืื ืืืืง ืื ืฉืืจื ืืชืืื. ืืืืืื ืืืืืง:
<h1>hello world</h1>
ืืชืืจ ืฉืืจืช ืืืชืจืช ืขื ืืืงืกื hello world. ืืืืืง:
<h1>hello world</h1>
<p>HTML was also invented by Tim Berners Lee along with HTTP and the first web browser</p>
ืืืืืจ ืฉืืจืช ืืืชืจืช ืืืืจืื ืคืืกืงืช ืืงืกื ืจืืืื. ืืชืืืช h1 ืืื ืงืืฆืืจ ืฉื ืืืืื header ืืื ืืชืืจ ืฉืืจืช ืืืชืจืช ืืืชืืืช p ืืื ืงืืฆืืจ ืฉื ืืืืื paragraph ืืืื ืืชืืจืช ืคืืกืงื. ืขื ืืืฆืืช ืฉืคืช HTML ืืื ืืจื ืจืก ืื ืืืฆืื ืื ืืื ืฉื ืงืจื ืืคืืคื ืืื ืืจื ื ืฉืืืืข ืืงืจืื ืืกืืืื ืืฉืคืช HTML ืืืืฆืื ืืืชื ืืฆืืจื ืืจืคืืช, ืืืฉื ืืช ืืืืชืจืืช ืืื ืืฆืื ืืืืคื ืืืื ืืืชืจ.
ื ืงืคืืฅ 15 ืฉื ื ืงืืืื ืื ืืื ืฉืื ืื ื ืจืืฆืื ืืืชืื ืืคืืืงืฆืื ืืืืคืื. ืืืคืืืงืฆืื ืฉืื ื ืฆืจืืื ืืืฆืื ืืืงืื ืฉื ืืฉืืงื ืืื ืคืืคืืืจืืื ืืืืจ ืืชืื ื ืืช ืื ืืืืงืื ืืฆืืจื ืืคื ืืฉืคืช HTML ืขืืืจ ืืฃ ืืืื ืืจื ื ืฉืื ื. ืืืขืื ืืื ืฉืืช ืืืคืืืงืฆืื ืื ืฉืื ืืชืงืื ืื ืขื ืืืืคืื ืืื ืคืืชืืื ืืชืื ืืคืืคื - ืื ืื ืืืืืข ืฉืืืคืืข ืืืฃ ืืืื ืืจื ื ืจืืืื ืื ืื ืืืคืืืงืฆืื, ืืืืชืื ืืืืคืืืงืฆืื ืืืคืชืืื ืืจืฆื ืืืืืืข ืขืืฆืื ืื ืืื ื ืฉืื ื ืืื ืฉืืืคืืข ืืจืฉืช.
ืืคืืชืจืื - JSON
ืืคืืชืจืื ืฉื ืืืจ ืืจืื ืืืขืจืืืช ืืื ืืืืฉืืจ ืขื HTTP ืืื ืืืืคืจื ื HTML. ืืืงืื ืฉืืฉืจืช ืืืืืจ ืืฃ HTML ืขื ืื ืืชืืื ืืืชืคืงืื ืืกืื ืื ืฉื ืื ืืืง ืืชืืื, ืืฉืจืช ืขืืืื ืืงืื ืคื ืื ืืฉืคืช HTTP ืืืืงืืืืช ืืืืืืจ "ืืฉืื ืืืจ", ืืฉืื ืฉืื ืืคืืืงืฆืื ืืื ืืคืืคื ืืื ืืจื ื ืืืืืื ืืงืจืื. ืืจืื ืืืื ืืจื ื ืืืฉืื ืืื ื ืงืจื JSON.
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
