เดชเตˆเดคเตเดคเดฃเดฟเตฝ เด’เดฐเต API เดŽเดดเตเดคเตเดจเตเดจเต (Flask เด‰เด‚ RapidAPI เด‰เด‚)

เดชเตˆเดคเตเดคเดฃเดฟเตฝ เด’เดฐเต API เดŽเดดเตเดคเตเดจเตเดจเต (Flask เด‰เด‚ RapidAPI เด‰เด‚)

เดจเดฟเด™เตเด™เตพ เดˆ เดฒเต‡เด–เดจเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด’เดฐเต API (เด…เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เด‡เดจเตเดฑเตผเดซเต‡เดธเต) เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฐเตเดจเตเดจ เดธเดพเดงเตเดฏเดคเด•เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเดฟเดจเด•เด‚ เดชเดฐเดฟเดšเดฟเดคเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.

เดจเดฟเด™เตเด™เดณเตเดŸเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเดฒเต‡เด•เตเด•เต เดจเดฟเดฐเดตเดงเดฟ เด“เดชเตเดชเตบ API-เด•เดณเดฟเตฝ เด’เดจเตเดจเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฟเด•เตเด•เดพเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด†เดตเดถเตเดฏเดฎเดพเดฏ เดกเดพเดฑเตเดฑ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเดฎเตเดชเดจเตเดจเดฎเดพเด•เตเด•เดพเด‚. เดŽเดจเตเดจเดพเตฝ เด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเดฑเตเดฑเดฟเดฏเตเดฎเดพเดฏเดฟ เดชเด™เตเด•เดฟเดŸเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด…เดฆเตเดตเดฟเดคเต€เดฏ เดธเดตเดฟเดถเต‡เดทเดค เดจเดฟเด™เตเด™เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเดพเดฒเต‹?

เด‰เดคเตเดคเดฐเด‚ เดฒเดณเดฟเดคเดฎเดพเดฃเต: เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฃเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ API เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•.

เด‡เดคเต เด†เดฆเตเดฏเด‚ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณ เด•เดพเดฐเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดฎเต†เด™เตเด•เดฟเดฒเตเด‚, เด‡เดคเต เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดฒเดณเดฟเดคเดฎเดพเดฃเต. เดชเตˆเดคเตเดคเตบ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดคเต เดŽเด™เตเด™เดจเต† เดšเต†เดฏเตเดฏเดพเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เด•เดพเดฃเดฟเดšเตเดšเตเดคเดฐเดพเด‚.

เดจเดฟเด™เตเด™เตพ เด†เดฐเด‚เดญเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต เดŽเดจเตเดคเดพเดฃเต

เด’เดฐเต API เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต:

  • เดชเตˆเดคเตเดคเตบ 3;
  • เดซเตเดฒเดพเดธเตเด•เต - เดตเต†เดฌเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฒเดณเดฟเดคเดตเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดŽเดณเตเดชเตเดชเดฎเตเดณเตเดณเดคเตเดฎเดพเดฏ เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเต;
  • เดซเตเดฒเดพเดธเตเด•เต-เดตเดฟเดถเตเดฐเดฎเด‚ เดตเต‡เด—เดคเตเดคเดฟเดฒเตเด‚ เด•เตเดฑเดžเตเดž เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเดฒเตเด‚ เด’เดฐเต REST API เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ Flask-เดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเดฎเดพเดฃเต.

เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดจเดŸเดคเตเดคเตเดจเตเดจเดคเต:

pip install flask-restful

เดคเตเดŸเด•เตเด•เด•เตเด•เดพเตผเด•เตเด•เดพเดฏเดฟ เด’เดฐเต เดธเต—เดœเดจเตเดฏ เดคเต€เดตเตเดฐ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เด•เต‹เดดเตเดธเต เดžเด™เตเด™เตพ เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต:
C#-เดฒเต† เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดฌเต‹เดŸเตเดŸเต เดตเดฟเด•เดธเดจเด‚ - เด“เด—เดธเตเดฑเตเดฑเต 26-28. เด…เดธเดฟเดธเตเดฑเตเดฑเดจเตเดฑเต เดฌเต‹เดŸเตเดŸเตเด•เตพ เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ API-เดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดคเตเดฏเต‡เด•เดคเด•เตพ, เดฎเดฑเตเดฑเต เดธเต‚เด•เตเดทเตเดฎเดคเด•เตพ เดŽเดจเตเดจเดฟเดต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดธเต—เดœเดจเตเดฏ เดคเต€เดตเตเดฐเดฎเดพเดฏ เด•เต‹เดดเตเดธเต. เดฎเต‚เดจเตเดจเต เดฎเดฟเด•เดšเตเดš เดชเด™เตเด•เดพเดณเดฟเด•เตพเด•เตเด•เต เดธเตเด•เดฟเตฝเดฌเต‹เด•เตเดธเดฟเตฝ เดจเดฟเดจเตเดจเต 30 เดฑเต‚เดฌเดฟเตพเดธเต เดฒเดญเดฟเด•เตเด•เตเด‚.

เดจเดฟเด™เตเด™เตพ เดคเตเดŸเด™เตเด™เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต

เดžเด™เตเด™เตพ เด…เดŸเดฟเดธเตเดฅเดพเดจเดชเดฐเดฎเดพเดฏ เด’เดฐเต RESTful API เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดชเต‹เด•เตเดจเตเดจเต CRUID เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚.

เดšเตเดฎเดคเดฒ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเตป, เดฎเตเด•เดณเดฟเตฝ เดธเต‚เดšเดฟเดชเตเดชเดฟเดšเตเดš เดฐเดฃเตเดŸเต เดชเดฆเด™เตเด™เตพ เดจเดฎเตเด•เตเด•เต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเด‚.

เดŽเดจเตเดคเดพเดฃเต REST?

เดกเดพเดฑเตเดฑ เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต HTTP เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต API เด†เดฃเต REST API (เดชเตเดฐเดพเดคเดฟเดจเดฟเดงเตเดฏ เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเต เดŸเตเดฐเดพเตปเดธเตเดซเตผ).

REST API-เด•เตพ เดšเดฟเดฒ เดฎเดพเดจเดฆเดฃเตเดกเด™เตเด™เตพ เดชเดพเดฒเดฟเด•เตเด•เดฃเด‚:

  • เด•เตเดฒเดฏเดจเตเดฑเต-เดธเต†เตผเดตเตผ เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเตผ: เด•เตเดฒเดฏเดจเตเดฑเต เด‰เดชเดฏเต‹เด•เตเดคเตƒ เด‡เดจเตเดฑเตผเดซเต‡เดธเตเดฎเดพเดฏเดฟ เดธเด‚เดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดธเต†เตผเดตเตผ เดฌเดพเด•เตเด•เต†เตปเดกเตเดฎเดพเดฏเตเด‚ เดกเดพเดฑเตเดฑ เดธเด‚เดญเดฐเดฃเดตเตเดฎเดพเดฏเตเด‚ เดธเด‚เดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เด•เตเดฒเดฏเดจเตเดฑเตเด‚ เดธเต†เตผเดตเดฑเตเด‚ เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดฃเต, เด…เดตเดฏเดฟเดฒเต‡เดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเดฑเตเดฑเตŠเดจเตเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดคเตเดฏเต‡เด•เด‚ เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เดพเด‚.
  • เดธเตโ€Œเดฑเตเดฑเต‡เดฑเตเดฑเตโ€Œเดฒเต†เดธเตเดธเต - เด•เตเดฒเดฏเดจเตเดฑเต เดกเดพเดฑเตเดฑเดฏเตŠเดจเตเดจเตเด‚ เดธเต†เตผเดตเดฑเดฟเตฝ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒ. เดธเต†เดทเตป เดจเดฟเดฒ เด•เตเดฒเดฏเดจเตเดฑเต เดตเดถเดคเตเดคเต เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.
  • เด•เดพเดทเต†เดฌเดฟเดฒเดฟเดฑเตเดฑเดฟ - เดฎเตŠเดคเตเดคเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเตเดฐเด•เดŸเดจเด‚ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเต เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพเด•เตเด•เต เดธเต†เตผเดตเตผ เดชเตเดฐเดคเดฟเด•เดฐเดฃเด™เตเด™เตพ เด•เดพเดทเต† เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚.

เดŽเดจเตเดคเดพเดฃเต CRUD?

เด•เตเดฐเต‚เดกเต เดจเดพเดฒเต เด…เดŸเดฟเดธเตเดฅเดพเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เด†เดถเดฏเดฎเดพเดฃเต (เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•, เดตเดพเดฏเดฟเด•เตเด•เตเด•, เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•, เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด•).

REST API-เตฝ, เดชเต‹เดธเตเดฑเตเดฑเต, เดจเต‡เดŸเตเด•, เด‡เดŸเตเด•, เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด• เดคเตเดŸเด™เตเด™เดฟเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพเด•เตเด•เต เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดคเดฐเด™เตเด™เดณเตเด‚ เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดฐเต€เดคเดฟเด•เดณเตเด‚ เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเด•เดณเดพเดฃเต.

เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพ เด…เดŸเดฟเดธเตเดฅเดพเดจ เดจเดฟเดฌเดจเตเดงเดจเด•เตพ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต, เดจเดฎเตเด•เตเด•เต API เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดพเด‚.

เดตเดฟเด•เดธเดจเด‚

เด†เตผเดŸเตเดŸเดฟเดซเดฟเดทเตเดฏเตฝ เด‡เดจเตเดฑเดฒเดฟเดœเตปเดธเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด‰เดฆเตเดงเดฐเดฃเดฟเด•เดณเตเดŸเต† เด’เดฐเต เดถเต‡เด–เดฐเด‚ เดจเดฎเตเด•เตเด•เต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเด‚. เด‡เดจเตเดจเต เด…เดคเดฟเดตเต‡เด—เด‚ เดตเดณเดฐเตเดจเตเดจ เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดตเดฟเดฆเตเดฏเด•เดณเดฟเตฝ เด’เดจเตเดจเดพเดฃเต AI, AI-เดฏเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดœเดจเดชเตเดฐเดฟเดฏ เด‰เดชเด•เดฐเดฃเดฎเดพเดฃเต เดชเตˆเดคเตเดคเตบ.

เดˆ API เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เด’เดฐเต เดชเตˆเดคเตเดคเตบ เดกเต†เดตเดฒเดชเตเดชเตผเด•เตเด•เต AI-เดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดจเต‡เดŸเดพเดจเตเด‚ เดชเตเดคเดฟเดฏ เดฎเตเดจเตเดจเต‡เดฑเตเดฑเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดšเต‹เดฆเดจเด‚ เด‰เตพเด•เตเด•เตŠเดฃเตเดŸเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เด’เดฐเต เดกเต†เดตเดฒเดชเตเดชเตผเด•เตเด•เต เดˆ เดตเดฟเดทเดฏเดคเตเดคเดฟเตฝ เดฎเต‚เดฒเตเดฏเดตเดคเตเดคเดพเดฏ เดšเดฟเดจเตเดคเด•เตพ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดต เดถเต‡เด–เดฐเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเด•เตเด•เดพเตป เด…เดฆเตเดฆเต‡เดนเดคเตเดคเดฟเดจเต เด•เดดเดฟเดฏเตเด‚.

เด†เดตเดถเตเดฏเดฎเดพเดฏ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เด‡เดฑเด•เตเด•เตเดฎเดคเดฟ เดšเต†เดฏเตเดคเต เดซเตเดฒเดพเดธเตเด•เต เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเตเด•เตŠเดฃเตเดŸเต เดจเดฎเตเด•เตเด•เต เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚:

from flask import Flask
from flask_restful import Api, Resource, reqparse
import random
app = Flask(__name__)
api = Api(app)

เดˆ เดธเตโ€Œเดจเดฟเดชเตเดชเต†เดฑเตเดฑเดฟเตฝ, เดซเตเดฒเดพเดธเตเด•เต, เดŽเดชเดฟ, เดฑเดฟเดธเต‹เดดเตเดธเต เดŽเดจเตเดจเดฟเดตเดฏเดพเดฃเต เดจเดฎเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฏ เด•เตเดฒเดพเดธเตเด•เตพ.

Reqparse เด’เดฐเต Flask-RESTful เด•เตเดตเดฑเดฟ เดชเดพเดดเตโ€Œเดธเดฟเด‚เด—เต เด‡เดจเตเดฑเตผเดซเต‡เดธเดพเดฃเต... เด•เตเดฐเดฎเดฐเดนเดฟเดคเดฎเดพเดฏ เด‰เดฆเตเดงเดฐเดฃเดฟ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดฑเดพเตปเดกเด‚ เดฎเตŠเดกเตเดฏเต‚เดณเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต.

เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพ AI-เดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด‰เดฆเตเดงเดฐเดฃเดฟเด•เดณเตเดŸเต† เด’เดฐเต เดถเต‡เด–เดฐเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด‚.

เด“เดฐเต‹ เดฑเดฟเดชเตเดชเต‹ เดŽเตปเดŸเตเดฐเดฟเดฏเดฟเดฒเตเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚:

  • เดกเดฟเดœเดฟเดฑเตเดฑเตฝ เดเดกเดฟ;
  • เด‰เดฆเตเดงเดฐเดฃเดฟเดฏเตเดŸเต† เดฐเดšเดฏเดฟเดคเดพเดตเดฟเดจเตเดฑเต† เดชเต‡เดฐเต;
  • เด‰เดฆเตเดงเดฐเดฃเดฟ.

เด‡เดคเตŠเดฐเต เดชเดฐเดฟเดถเต€เดฒเดจ เด‰เดฆเดพเดนเดฐเดฃเด‚ เดฎเดพเดคเตเดฐเดฎเดพเดฏเดคเดฟเดจเดพเตฝ, เดžเด™เตเด™เตพ เดŽเดฒเตเดฒเดพ เดŽเตปเดŸเตเดฐเดฟเด•เดณเตเด‚ เด’เดฐเต เดชเตˆเดคเตเดคเตบ เดฒเดฟเดธเตเดฑเตเดฑเดฟเตฝ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเด‚. เด’เดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ, เดชเด•เดฐเด‚ เดžเด™เตเด™เตพ เด’เดฐเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚.

ai_quotes = [
    {
        "id": 0,
        "author": "Kevin Kelly",
        "quote": "The business plans of the next 10,000 startups are easy to forecast: " +
                 "Take X and add AI."
    },
    {
        "id": 1,
        "author": "Stephen Hawking",
        "quote": "The development of full artificial intelligence could " +
                 "spell the end of the human raceโ€ฆ " +
                 "It would take off on its own, and re-design " +
                 "itself at an ever increasing rate. " +
                 "Humans, who are limited by slow biological evolution, " +
                 "couldn't compete, and would be superseded."
    },
    {
        "id": 2,
        "author": "Claude Shannon",
        "quote": "I visualize a time when we will be to robots what " +
                 "dogs are to humans, " +
                 "and Iโ€™m rooting for the machines."
    },
    {
        "id": 3,
        "author": "Elon Musk",
        "quote": "The pace of progress in artificial intelligence " +
                 "(Iโ€™m not referring to narrow AI) " +
                 "is incredibly fast. Unless you have direct " +
                 "exposure to groups like Deepmind, " +
                 "you have no idea how fast โ€” it is growing " +
                 "at a pace close to exponential. " +
                 "The risk of something seriously dangerous " +
                 "happening is in the five-year timeframe." +
                 "10 years at most."
    },
    {
        "id": 4,
        "author": "Geoffrey Hinton",
        "quote": "I have always been convinced that the only way " +
                 "to get artificial intelligence to work " +
                 "is to do the computation in a way similar to the human brain. " +
                 "That is the goal I have been pursuing. We are making progress, " +
                 "though we still have lots to learn about " +
                 "how the brain actually works."
    },
    {
        "id": 5,
        "author": "Pedro Domingos",
        "quote": "People worry that computers will " +
                 "get too smart and take over the world, " +
                 "but the real problem is that they're too stupid " +
                 "and they've already taken over the world."
    },
    {
        "id": 6,
        "author": "Alan Turing",
        "quote": "It seems probable that once the machine thinking " +
                 "method had started, it would not take long " +
                 "to outstrip our feeble powersโ€ฆ " +
                 "They would be able to converse " +
                 "with each other to sharpen their wits. " +
                 "At some stage therefore, we should " +
                 "have to expect the machines to take control."
    },
    {
        "id": 7,
        "author": "Ray Kurzweil",
        "quote": "Artificial intelligence will reach " +
                 "human levels by around 2029. " +
                 "Follow that out further to, say, 2045, " +
                 "we will have multiplied the intelligence, " +
                 "the human biological machine intelligence " +
                 "of our civilization a billion-fold."
    },
    {
        "id": 8,
        "author": "Sebastian Thrun",
        "quote": "Nobody phrases it this way, but I think " +
                 "that artificial intelligence " +
                 "is almost a humanities discipline. It's really an attempt " +
                 "to understand human intelligence and human cognition."
    },
    {
        "id": 9,
        "author": "Andrew Ng",
        "quote": "We're making this analogy that AI is the new electricity." +
                 "Electricity transformed industries: agriculture, " +
                 "transportation, communication, manufacturing."
    }
]

เดžเด™เตเด™เดณเตเดŸเต† API เดŽเตปเดกเตโ€Œเดชเต‹เดฏเดฟเดจเตเดฑเตเด•เดณเตเดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเต† เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด‰เดฆเตเดงเดฐเดฃเดฟ เดฑเดฟเดธเต‹เดดเตโ€Œเดธเต เด•เตเดฒเดพเดธเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด•เตเดฒเดพเดธเดฟเดจเตเดณเตเดณเดฟเตฝ เดจเดฟเด™เตเด™เตพ เดจเดพเดฒเต เดฐเต€เดคเดฟเด•เตพ เดชเตเดฐเด–เตเดฏเดพเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต: เดจเต‡เดŸเตเด•, เดชเต‹เดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•, เด‡เดŸเตเด•, เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด•.

เดจเดฎเตเด•เตเด•เต GET เดฐเต€เดคเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚

เด’เดฐเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เด‰เดฆเตเดงเดฐเดฃเดฟ เด…เดคเดฟเดจเตเดฑเต† เดเดกเดฟ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดเดกเดฟ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เตเดฐเดฎเดฐเดนเดฟเดคเดฎเดพเดฏ เด‰เดฆเตเดงเดฐเดฃเดฟ เดจเต‡เดŸเตเดจเตเดจเดคเต เดธเดพเดงเตเดฏเดฎเดพเด•เตเด•เตเดจเตเดจเต.

class Quote(Resource):
    def get(self, id=0):
        if id == 0:
            return random.choice(ai_quotes), 200
        for quote in ai_quotes:
            if(quote["id"] == id):
                return quote, 200
        return "Quote not found", 404

เดเดกเดฟเดฏเดฟเตฝ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดฎเต‚เดฒเตเดฏเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, GET เดฐเต€เดคเดฟ เด•เตเดฐเดฎเดฐเดนเดฟเดคเดฎเดพเดฏ เด’เดฐเต เด‰เดฆเตเดงเดฐเดฃเดฟ เดจเตฝเด•เตเดจเตเดจเต, เด…เดคเดพเดฏเดคเต. เดฐเต€เดคเดฟ เดตเดฟเดณเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดเดกเดฟ เด’เดจเตเดจเตเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ.

เด‡เดคเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดฐเต€เดคเดฟ เด…เดตเดฒเด‚เดฌเด™เตเด™เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เดคเดฟเดฐเดฏเตเด•เดฏเตเด‚ เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดเดกเดฟ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดจเตเดจเต เด•เดฃเตเดŸเต†เดคเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด’เดจเตเดจเตเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, "เด‰เดฆเตเดงเดฐเดฃเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดฟเดฒเตเดฒ, 404" เดŽเดจเตเดจ เดธเดจเตเดฆเต‡เดถเด‚ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚.

เด“เตผเดฎเตเดฎเดฟเด•เตเด•เตเด•: เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดตเดฟเดœเดฏเดฟเดšเตเดšเดพเตฝ 200 เดŽเดจเตเดจ HTTP เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดธเตเด‚ เดฑเต†เด•เตเด•เต‹เตผเดกเต เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ 404 เด‰เด‚ เดฐเต€เดคเดฟ เดจเตฝเด•เตเดจเตเดจเต.

เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดชเตเดคเดฟเดฏ เด‰เดฆเตเดงเดฐเดฃเดฟ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เด’เดฐเต POST เดฐเต€เดคเดฟ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเด‚

เดจเดฟเด™เตเด™เตพ เดŸเตˆเดชเตเดชเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เด“เดฐเต‹ เดชเตเดคเดฟเดฏ เด‰เดฆเตเดงเดฐเดฃเดฟเดฏเตเดŸเต†เดฏเตเด‚ เดเดกเดฟ เด‡เดคเดฟเดจเต เดฒเดญเดฟเด•เตเด•เตเด‚. เด•เต‚เดŸเดพเดคเต†, เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดฌเต‹เดกเดฟเดฏเดฟเตฝ (เดฐเดšเดฏเดฟเดคเดพเดตเตเด‚ เด‰เดฆเตเดงเดฐเดฃเดฟ เดตเดพเดšเด•เดตเตเด‚) เดชเต‹เด•เตเดจเตเดจ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเดพเตป POST reqparse เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚.

def post(self, id):
      parser = reqparse.RequestParser()
      parser.add_argument("author")
      parser.add_argument("quote")
      params = parser.parse_args()
      for quote in ai_quotes:
          if(id == quote["id"]):
              return f"Quote with id {id} already exists", 400
      quote = {
          "id": int(id),
          "author": params["author"],
          "quote": params["quote"]
      }
      ai_quotes.append(quote)
      return quote, 201

เดฎเตเด•เดณเดฟเดฒเต† เด•เต‹เดกเดฟเตฝ, POST เดฐเต€เดคเดฟ เด‰เดฆเตเดงเดฐเดฃเดฟ เดเดกเดฟ เด…เด‚เด—เต€เด•เดฐเดฟเดšเตเดšเต. เดคเตเดŸเตผเดจเตเดจเต, reqparse เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เด…เดคเต เดšเต‹เดฆเตเดฏเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดฐเดšเดฏเดฟเดคเดพเดตเดฟเดจเต†เดฏเตเด‚ เด…เดตเดฒเด‚เดฌเดคเตเดคเต†เดฏเตเด‚ เดตเต€เดฃเตเดŸเต†เดŸเตเดคเตเดคเต, เด…เดต เดชเดพเดฐเดพเด‚เดธเต เดจเดฟเด˜เดฃเตเดŸเตเดตเดฟเตฝ เดธเด‚เดญเดฐเดฟเดšเตเดšเต.

เดจเดฟเตผเดฆเตเดฆเดฟเดทเตโ€ŒเดŸ เดเดกเดฟเดฏเตเดณเตเดณ เด’เดฐเต เด‰เดฆเตเดงเดฐเดฃเดฟ เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดฐเต€เดคเดฟ เด…เดจเตเดฌเดจเตเดง เดธเดจเตเดฆเต‡เดถเดตเตเด‚ 400 เด•เต‹เดกเตเด‚ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดเดกเดฟเดฏเตเดณเตเดณ เด’เดฐเต เด…เดตเดฒเด‚เดฌเด‚ เด‡เดคเตเดตเดฐเต† เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดเดกเดฟเดฏเตเด‚ เดฐเดšเดฏเดฟเดคเดพเดตเตเด‚ เดฎเดฑเตเดฑเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฐเต€เดคเดฟ เด’เดฐเต เดชเตเดคเดฟเดฏ เดฑเต†เด•เตเด•เต‹เตผเดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เดชเดฟเดจเตเดจเต€เดŸเต ai_quotes เดฒเดฟเดธเตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดŽเตปเดŸเตเดฐเดฟ เดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เด’เดฐเต 201 เด•เต‹เดกเดฟเดจเตŠเดชเตเดชเด‚ เดชเตเดคเดฟเดฏ เด‰เดฆเตเดงเดฐเดฃเดฟเด•เตเด•เตŠเดชเตเดชเด‚ เดŽเตปเดŸเตเดฐเดฟ เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เด’เดฐเต เด‰เดฆเตเดงเดฐเดฃเดฟ เดฎเดพเดฑเตเดฑเดพเตป เดžเด™เตเด™เตพ เด‡เดชเตเดชเต‹เตพ เด’เดฐเต PUT เดฐเต€เดคเดฟ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต

def put(self, id):
      parser = reqparse.RequestParser()
      parser.add_argument("author")
      parser.add_argument("quote")
      params = parser.parse_args()
      for quote in ai_quotes:
          if(id == quote["id"]):
              quote["author"] = params["author"]
              quote["quote"] = params["quote"]
              return quote, 200
      
      quote = {
          "id": id,
          "author": params["author"],
          "quote": params["quote"]
      }
      
      ai_quotes.append(quote)
      return quote, 201

เดฎเตเดฎเตเดชเดคเตเดคเต† เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฏ PUT เดฐเต€เดคเดฟ, เดเดกเดฟเดฏเตเด‚ เด‡เตปเดชเตเดŸเตเดŸเตเด‚ เดŽเดŸเตเด•เตเด•เตเด•เดฏเตเด‚ reqparse เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‰เดฆเตเดงเดฐเดฃเดฟ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดจเดฟเตผเดฆเตเดฆเดฟเดทเตโ€ŒเดŸ เดเดกเดฟเดฏเตเดณเตเดณ เด’เดฐเต เด‰เดฆเตเดงเดฐเดฃเดฟ เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดฐเต€เดคเดฟ เด…เดคเต เดชเตเดคเดฟเดฏ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด‚, เดคเตเดŸเตผเดจเตเดจเต เด•เต‹เดกเต 200 เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดค เด…เดตเดฒเด‚เดฌเด‚ เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเด‚. เดจเดฟเตผเดฆเตเดฆเดฟเดทเตโ€ŒเดŸ เดเดกเดฟเดฏเดฟเตฝ เด‡เดคเตเดตเดฐเต† เด…เดตเดฒเด‚เดฌเดฎเตŠเดจเตเดจเตเด‚ เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด•เต‹เดกเต 201 เด‰เดณเตเดณ เด’เดฐเต เดชเตเดคเดฟเดฏ เดฑเต†เด•เตเด•เต‹เตผเดกเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเด‚.

เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เด‡เดจเดฟ เดชเตเดฐเดšเต‹เดฆเดฟเดชเตเดชเดฟเด•เตเด•เดพเดคเตเดค เด’เดฐเต เด‰เดฆเตเดงเดฐเดฃเดฟ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเดพเตป เดจเดฎเตเด•เตเด•เต เด’เดฐเต DELETE เดฐเต€เดคเดฟ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเด‚

def delete(self, id):
      global ai_quotes
      ai_quotes = [qoute for qoute in ai_quotes if qoute["id"] != id]
      return f"Quote with id {id} is deleted.", 200

เดˆ เดฐเต€เดคเดฟเด•เตเด•เต เด‰เดฆเตเดงเดฐเดฃเดฟ เดเดกเดฟ เด‡เตปเดชเตเดŸเตเดŸเดพเดฏเดฟ เดฒเดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดชเด™เตเด•เดฟเดŸเตเดŸ เดฒเดฟเดธเตเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต ai_quotes เดฒเดฟเดธเตเดฑเตเดฑเต เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพ เดŽเดฒเตเดฒเดพ เดฐเต€เดคเดฟเด•เดณเตเด‚ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต, เดžเด™เตเด™เตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต API-เดฏเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดฑเดฟเดธเต‹เดดเตเดธเต เดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เดชเดพเดค เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดซเตเดฒเดพเดธเตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด•.

api.add_resource(Quote, "/ai-quotes", "/ai-quotes/", "/ai-quotes/<int:id>")
if __name__ == '__main__':
    app.run(debug=True)

เดžเด™เตเด™เดณเตเดŸเต† REST API เดธเต‡เดตเดจเด‚ เดคเดฏเตเดฏเดพเดฑเดพเดฃเต!

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตบเดธเต‹เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดšเตเดšเต เดจเดฎเตเด•เตเด•เต app.py เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เด•เต‹เดกเต เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚:

python3 app.py

เดŽเดฒเตเดฒเดพเด‚ เดจเดฒเตเดฒเดคเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดžเด™เตเด™เตพเด•เตเด•เต เด‡เดคเตเดชเต‹เดฒเตŠเดจเตเดจเต เดฒเดญเดฟเด•เตเด•เตเด‚:

* เดกเต€เดฌเด—เต เดฎเต‹เดกเต: เด“เตบ
*เด“เดŸเตเดจเตเดจเต 127.0.0.1:5000/ (เดชเตเดฑเดคเตเดคเดฟเดฑเด™เตเด™เดพเตป CTRL+C เด…เดฎเตผเดคเตเดคเตเด•)
* เดธเตเดฑเตเดฑเดพเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต
* เดกเต€เดฌเด—เตเด—เตผ เดธเดœเต€เดตเดฎเดพเดฃเต!
* เดกเต€เดฌเด—เตเด—เตผ เดชเดฟเตป: XXXXXXX

API เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต

API เดธเตƒเดทเตเดŸเดฟเดšเตเดšเตเด•เดดเดฟเดžเตเดžเดพเตฝ, เด…เดคเต เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เด‡เดคเต curl เด•เตบเดธเต‹เตพ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด‡เตปเดธเต‹เดฎเตเดจเดฟเดฏ REST เด•เตเดฒเดฏเดจเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต‹ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฑเดพเดชเตเดชเดฟเดกเต API-เดฏเดฟเตฝ API เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†เดฏเต‹ เดšเต†เดฏเตเดฏเดพเด‚.

เดชเตˆเดคเตเดคเดฃเดฟเตฝ เด’เดฐเต API เดŽเดดเตเดคเตเดจเตเดจเต (Flask เด‰เด‚ RapidAPI เด‰เด‚)

เดžเด™เตเด™เดณเตเดŸเต† API เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต

10-เดฒเดงเดฟเด•เด‚ API-เด•เตพ (เดเด•เดฆเต‡เดถเด‚ 000 เดฆเดถเดฒเด•เตเดทเด‚ เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเดฐเตเด‚) เด‰เดณเตเดณ เดฒเต‹เด•เดคเตเดคเดฟเดฒเต† เดเดฑเตเดฑเดตเตเด‚ เดตเดฒเดฟเดฏ เดตเดฟเดชเดฃเดฟเดฏเดพเดฃเต RapidAPI.

RapidAPI เดฎเต‚เดจเตเดจเดพเด‚ เด•เด•เตเดทเดฟ API-เด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเตŠเดฑเตเดฑ เด‡เดจเตเดฑเตผเดซเต‡เดธเต เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ API เดตเต‡เด—เดคเตเดคเดฟเดฒเตเด‚ เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเดฒเตเด‚ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเตเด‚ เดจเตฝเด•เตเดจเตเดจเต.

เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดšเต†เดฏเตเดฏเต, เดจเดฟเด™เตเด™เตพ เด†เดฆเตเดฏเด‚ เด…เดคเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเดฒเต† เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดธเต†เตผเดตเดฑเดฟเตฝ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚ เดนเต†เดฑเต‹เด•เตเด•เต. เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเด•เตพ เด‰เดฃเตเดŸเดพเด•เตเด•เดฐเตเดคเต, (เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดตเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเตฝ เด‡เดตเดฟเดŸเต† เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚).

Heroku-เตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† API เดŽเด™เตเด™เดจเต† เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เดพเด‚

1. Heroku เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•.

Heroku เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เด‡เดจเตเดฑเตผเดซเต‡เดธเต (CLI) เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดคเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด†เดฆเตเดฏเดชเดŸเดฟ. เด‡เดคเต เด‰เดฌเตเดฃเตเดŸเต 16+ เตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต.

เดธเตเดกเต‹ เดธเตเดจเดพเดชเตเดชเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดนเต€เดฑเต‹เด•เต โ€”เด•เตเดฒเดพเดธเดฟเด•เต

เดคเตเดŸเตผเดจเตเดจเต เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตเดฏเตเด•:

เดนเต€เดฑเต‹เด•เต เดฒเต‹เด—เดฟเตป

2. เด†เดตเดถเตเดฏเดฎเดพเดฏ เดซเดฏเดฒเตเด•เตพ เดšเต‡เตผเด•เตเด•เตเด•.

เด‡เดชเตเดชเต‹เตพ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เต‡เดฃเตเดŸ เดซเดฏเดฒเตเด•เตพ เดžเด™เตเด™เดณเตเดŸเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเดฒเต† เด’เดฐเต เดซเต‹เตพเดกเดฑเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:

  • เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดชเตˆเดคเตเดคเตบ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเดŸเต† เด’เดฐเต เดฒเดฟเดธเตโ€Œเดฑเตเดฑเต เด‰เดณเตเดณ เด†เดตเดถเตเดฏเด•เดคเด•เตพ.txt;
  • เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดŽเดจเตเดคเต เด•เดฎเดพเตปเดกเตเด•เตพ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดฃเดฎเต†เดจเตเดจเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจ Procfile;
  • .gitignore - เดธเต†เตผเดตเดฑเดฟเตฝ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดซเดฏเดฒเตเด•เตพ เด’เดดเดฟเดตเดพเด•เตเด•เดพเตป.

เด†เดตเดถเตเดฏเด•เดคเด•เตพ.txt เดซเดฏเดฒเดฟเตฝ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดตเดฐเดฟเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚:

  • เดซเตเดฒเดพเดธเตเด•เต
  • เดซเตเดฒเดพเดธเตเด•เต-เดตเดฟเดถเตเดฐเดฎเด‚
  • เด—เตเดจเดฟเด•เต‹เตบ

เดžเด™เตเด™เดณเตเดŸเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดธเต†เตผเดตเดฑเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดจเดพเตฝ เดžเด™เตเด™เตพ เด—เดฃเดฟเด•เต‹เตบ (เดชเตˆเดคเตเดคเตบ WSGI HTTP เดธเต†เตผเดตเตผ) เดชเดŸเตเดŸเดฟเด•เดฏเดฟเตฝ เดšเต‡เตผเดคเตเดคเตเดตเต†เดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•.

เดชเตเดฐเตŠเดซเตˆเดฒเดฟเตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚:

web: gunicorn app:app

.gitignore-เดจเตเดฑเต† เด‰เดณเตเดณเดŸเด•เตเด•เด‚:

*.pyc
__pycache__/

เด‡เดชเตเดชเต‹เตพ เดซเดฏเดฒเตเด•เตพ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเต, เดจเดฎเตเด•เตเด•เต เดœเดฟเดฑเตเดฑเต เดฑเดฟเดชเตเดชเต‹ เดธเดฎเดพเดฐเด‚เดญเดฟเดšเตเดšเต เด•เดฎเตเดฎเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเด‚:

git init
git add
git commit -m "First API commit"

3. เด’เดฐเต เดชเตเดคเดฟเดฏ Heroku เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•.

heroku create

เดžเด™เตเด™เตพ เดฎเดพเดธเตเดฑเตเดฑเตผ เดฌเตเดฐเดพเดžเตเดšเดฟเดจเต† เดตเดฟเดฆเต‚เดฐ เดนเต†เดฑเต‹เด•เต เดฑเดฟเดชเตเดชเต‹เดฏเดฟเดฒเต‡เด•เตเด•เต เดคเดณเตเดณเตเดจเตเดจเต:

git push heroku master

เด•เดฎเดพเตปเดกเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต API เดธเต‡เดตเดจเด‚ เดคเตเดฑเดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดชเตเดชเต‹เตพ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚:

heroku ps:scale web=1
heroku open
 

API เด‡เดตเดฟเดŸเต† เดฒเดญเตเดฏเดฎเดพเด•เตเด‚ your-random-heroku-name.herokuapp.com/ai-quotes.

RapidAPI เดฎเดพเตผเด•เตเด•เดฑเตเดฑเตโ€Œเดชเตเดฒเต†เดฏเตโ€Œเดธเดฟเดฒเต‡เด•เตเด•เต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตˆเดคเตเดคเตบ API เดŽเด™เตเด™เดจเต† เดšเต‡เตผเด•เตเด•เดพเด‚

เดจเดฟเด™เตเด™เดณเตเดŸเต† API เดธเต‡เดตเดจเด‚ Heroku-เตฝ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดšเตเด•เดดเดฟเดžเตเดžเดพเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดคเต เดฑเดพเดชเตเดชเดฟเดกเต API-เดฒเต‡เด•เตเด•เต เดšเต‡เตผเด•เตเด•เดพเด‚. เด‡เดตเดฟเดŸเต† เดตเดฟเดถเดฆเดฎเดพเดฏ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เดˆ เดตเดฟเดทเดฏเดคเตเดคเดฟเตฝ.

1. เด’เดฐเต RapidAPI เด…เด•เตเด•เต—เดฃเตเดŸเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•.

เดชเตˆเดคเตเดคเดฃเดฟเตฝ เด’เดฐเต API เดŽเดดเตเดคเตเดจเตเดจเต (Flask เด‰เด‚ RapidAPI เด‰เด‚)

เด’เดฐเต เดธเต—เดœเดจเตเดฏ เด…เด•เตเด•เต—เดฃเตเดŸเต เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดฏเตเด• - เด‡เดคเต Facebook, Google, GitHub เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดšเต†เดฏเตเดฏเดพเด‚.

เดชเตˆเดคเตเดคเดฃเดฟเตฝ เด’เดฐเต API เดŽเดดเตเดคเตเดจเตเดจเต (Flask เด‰เด‚ RapidAPI เด‰เด‚)

2. เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดชเดพเดจเดฒเดฟเดฒเต‡เด•เตเด•เต API เดšเต‡เตผเด•เตเด•เตเด•.

เดชเตˆเดคเตเดคเดฃเดฟเตฝ เด’เดฐเต API เดŽเดดเตเดคเตเดจเตเดจเต (Flask เด‰เด‚ RapidAPI เด‰เด‚)

3. เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เดจเดฟเด™เตเด™เดณเตเดŸเต† API-เดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดชเตŠเดคเตเดตเดพเดฏ เดตเดฟเดตเดฐเด™เตเด™เตพ เดจเตฝเด•เตเด•.

เดชเตˆเดคเตเดคเดฃเดฟเตฝ เด’เดฐเต API เดŽเดดเตเดคเตเดจเตเดจเต (Flask เด‰เด‚ RapidAPI เด‰เด‚)

4. "API เดšเต‡เตผเด•เตเด•เตเด•" เด•เตเดฒเดฟเด•เตเด•เตเดšเต†เดฏเตเดคเดคเดฟเดจเตเดถเต‡เดทเด‚, เดžเด™เตเด™เดณเตเดŸเต† API-เดฏเต† เด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดจเตฝเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เด’เดฐเต เดชเตเดคเดฟเดฏ เดชเต‡เดœเต เดฆเตƒเดถเตเดฏเดฎเดพเด•เตเดจเตเดจเต.

เดชเตˆเดคเตเดคเดฃเดฟเตฝ เด’เดฐเต API เดŽเดดเตเดคเตเดจเตเดจเต (Flask เด‰เด‚ RapidAPI เด‰เด‚)

5. เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดจเตเดจเตเด•เดฟเตฝ API เดŽเตปเดกเต เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เตพ เดธเตเดตเดฎเต‡เดงเดฏเดพ เดจเตฝเด•เดพเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเด‚ swagger-file OpenAPI เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

เดชเตˆเดคเตเดคเดฃเดฟเตฝ เด’เดฐเต API เดŽเดดเตเดคเตเดจเตเดจเต (Flask เด‰เด‚ RapidAPI เด‰เด‚)

เดถเดฐเดฟ, เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เดจเดฎเตเดฎเตเดŸเต† API-เดฏเตเดŸเต† เด…เดตเดธเดพเดจ เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เตพ เดŽเตปเดกเต เดชเต‹เดฏเดฟเดจเตเดฑเต เดชเต‡เดœเดฟเตฝ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด…เดตเดธเดพเดจ เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เตพ CRUD เดŽเดจเตเดจ เด†เดถเดฏเดตเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเต (เดจเต‡เดŸเตเด•, เดชเต‹เดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•, เด‡เดŸเตเด•, เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด•).

เดชเตˆเดคเตเดคเดฃเดฟเตฝ เด’เดฐเต API เดŽเดดเตเดคเตเดจเตเดจเต (Flask เด‰เด‚ RapidAPI เด‰เด‚)

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เดจเดฟเด™เตเด™เตพ เด•เตเดฐเดฎเดฐเดนเดฟเดคเดฎเดพเดฏ เด‰เดฆเตเดงเดฐเดฃเดฟ (เดเดกเดฟ เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเดฃเต†เด™เตเด•เดฟเตฝ) เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดเดกเดฟเด•เตเด•เต เด’เดฐเต เด‰เดฆเตเดงเดฐเดฃเดฟ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต GET AI เด‰เดฆเตเดงเดฐเดฃเดฟ เดŽเตปเดกเตโ€Œเดชเต‹เดฏเดฟเดจเตเดฑเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เด’เดฐเต เดŽเตปเดกเตโ€Œเดชเต‹เดฏเดฟเดจเตเดฑเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดพเตป, "เด…เดตเดธเดพเดจ เดชเต‹เดฏเดฟเดจเตเดฑเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเด•" เดฌเดŸเตเดŸเตบ เด•เตเดฒเดฟเด•เตเด•เตเดšเต†เดฏเตเดฏเตเด•.

เดชเตˆเดคเตเดคเดฃเดฟเตฝ เด’เดฐเต API เดŽเดดเตเดคเตเดจเตเดจเต (Flask เด‰เด‚ RapidAPI เด‰เด‚)

เดฎเดฑเตเดฑเต†เดฒเตเดฒเดพ เดŽเดชเดฟเด เดŽเตปเดกเต เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เตพเด•เตเด•เตเดฎเดพเดฏเดฟ เดžเด™เตเด™เตพ เดˆ เดชเตเดฐเด•เตเดฐเดฟเดฏ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดคเตเดฐเดฏเต‡เดฏเตเดณเตเดณเต‚! เด…เดญเดฟเดจเดจเตเดฆเดจเด™เตเด™เตพ, เดจเดฟเด™เตเด™เตพ เดจเดฟเด™เตเด™เดณเตเดŸเต† API เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดšเต!

เดŽเดฒเตเดฒเดพเด‚ เดถเดฐเดฟเดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, API เดชเต‡เดœเต เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเด‚:

เดชเตˆเดคเตเดคเดฃเดฟเตฝ เด’เดฐเต API เดŽเดดเตเดคเตเดจเตเดจเต (Flask เด‰เด‚ RapidAPI เด‰เด‚)

เดคเต€เดฐเตเดฎเดพเดจเด‚

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ, Heroku เด•เตเดฒเต—เดกเดฟเดฒเต‡เด•เตเด•เต API เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ RapidAPI เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดชเตˆเดคเตเดคเดฃเดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ RESTful API เดธเต‡เดตเดจเด‚ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเตเด‚ เดžเด™เตเด™เตพ เดชเด เดฟเดšเตเดšเต.

เดŽเดจเตเดจเดพเตฝ เดŸเต†เดธเตเดฑเตเดฑเต เดชเดคเดฟเดชเตเดชเต API เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดจเตเดฑเต† เด…เดŸเดฟเดธเตเดฅเดพเดจ เดคเดคเตเดตเด™เตเด™เตพ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด•เดพเดฃเดฟเดšเตเดšเดคเต - เดธเตเดฐเด•เตเดท, เดคเต†เดฑเตเดฑเต เดธเดนเดฟเดทเตเดฃเตเดค, เดธเตเด•เต‡เดฒเดฌเดฟเดณเดฟเดฑเตเดฑเดฟ เดคเตเดŸเด™เตเด™เดฟเดฏ เดธเต‚เด•เตเดทเตเดฎเดคเด•เตพ เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดฒเตเดฒ.

เด’เดฐเต เดฏเดฅเดพเตผเดคเตเดฅ API เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด‡เดคเต†เดฒเตเดฒเดพเด‚ เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•