API-แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜ (Flask-แƒ˜แƒ— แƒ“แƒ RapidAPI-แƒ˜แƒ—)

API-แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜ (Flask-แƒ˜แƒ— แƒ“แƒ RapidAPI-แƒ˜แƒ—)

แƒ—แƒฃ แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒก แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒ—, แƒแƒšแƒ‘แƒแƒ— แƒฃแƒ™แƒ•แƒ” แƒ˜แƒชแƒœแƒแƒ‘แƒ— แƒ˜แƒ› แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ˜แƒฎแƒกแƒœแƒ”แƒ‘แƒ API-แƒก (แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜) แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก.

แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒกแƒแƒฏแƒแƒ แƒ API-แƒ“แƒแƒœ แƒ”แƒ แƒ—แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒแƒคแƒแƒ แƒ—แƒแƒ•แƒแƒ— แƒแƒ› แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ แƒแƒœ แƒจแƒ”แƒแƒ•แƒกแƒแƒ— แƒ˜แƒ’แƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ, แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒกแƒฃแƒ แƒ— แƒ’แƒแƒฃแƒ–แƒ˜แƒแƒ แƒแƒ— แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒแƒก?

แƒžแƒแƒกแƒฃแƒฎแƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ: แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ API.

แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒ”แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒ แƒ—แƒฃแƒš แƒแƒ›แƒแƒชแƒแƒœแƒแƒ“ แƒฉแƒแƒœแƒ“แƒ”แƒก, แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ. แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒ”แƒก Python-แƒ˜แƒ—.

แƒ แƒแƒช แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ“แƒแƒกแƒแƒฌแƒงแƒ”แƒ‘แƒแƒ“

API-แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก:

  • แƒžแƒ˜แƒ—แƒแƒœแƒ˜ 3;
  • แƒกแƒ˜แƒœแƒฏแƒแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก โ€” แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒฉแƒแƒ แƒฉแƒ แƒ•แƒ”แƒ‘ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“;
  • แƒ™แƒแƒšแƒ‘แƒ-แƒ“แƒแƒกแƒ•แƒ”แƒœแƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒก Flask-แƒ˜แƒก แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ“แƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒ— แƒ’แƒแƒœแƒแƒ•แƒ˜แƒ—แƒแƒ แƒแƒ— REST API.

แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ แƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒ‘แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ—:

pip install flask-restful

แƒฉแƒ•แƒ”แƒœ แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— แƒฃแƒคแƒแƒกแƒ แƒ˜แƒœแƒขแƒ”แƒœแƒกแƒ˜แƒฃแƒ  แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒ“แƒแƒ›แƒฌแƒงแƒ”แƒ‘แƒ—แƒแƒ—แƒ•แƒ˜แƒก:
Telegram แƒ‘แƒแƒขแƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ C#-แƒจแƒ˜ โ€” 26โ€“28 แƒแƒ’แƒ•แƒ˜แƒกแƒขแƒ. แƒฃแƒคแƒแƒกแƒ แƒ˜แƒœแƒขแƒ”แƒœแƒกแƒ˜แƒฃแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒ˜แƒ’แƒแƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ“แƒแƒ›แƒฎแƒ›แƒแƒ แƒ” แƒ‘แƒแƒขแƒ”แƒ‘แƒ˜, Telegram API-แƒกแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒœแƒ˜แƒฃแƒแƒœแƒกแƒ˜. แƒกแƒแƒ›แƒ˜ แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ” แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก 30 แƒ แƒฃแƒ‘แƒšแƒก Skillbox-แƒ˜แƒกแƒ’แƒแƒœ.

แƒกแƒแƒœแƒแƒ› แƒ“แƒแƒ˜แƒฌแƒงแƒ”

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ— RESTful API-แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒแƒก แƒกแƒแƒ‘แƒแƒ–แƒ˜แƒกแƒ CRUID แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ.

แƒแƒ›แƒแƒชแƒแƒœแƒ˜แƒก แƒกแƒ แƒฃแƒšแƒแƒ“ แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“, แƒ’แƒแƒ•แƒ˜แƒ’แƒแƒ— แƒ–แƒ”แƒ›แƒแƒ— แƒœแƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜ แƒขแƒ”แƒ แƒ›แƒ˜แƒœแƒ˜.

แƒ แƒ แƒแƒ แƒ˜แƒก REST?

REST API (Representational State Transfer) แƒแƒ แƒ˜แƒก API, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก HTTP แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ’แƒแƒชแƒ•แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

REST API-แƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒแƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ“แƒ”แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒ™แƒ แƒ˜แƒขแƒ”แƒ แƒ˜แƒฃแƒ›แƒ”แƒ‘แƒก:

  • แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜-แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ: แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ—แƒแƒœ, แƒฎแƒแƒšแƒ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒก backend-แƒ—แƒแƒœ แƒ“แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒแƒกแƒ—แƒแƒœ. แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜ แƒ“แƒ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก แƒ›แƒ”แƒแƒ แƒ˜แƒกแƒ’แƒแƒœ แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒšแƒแƒ“.
  • แƒ›แƒแƒฅแƒแƒšแƒแƒฅแƒ”แƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” - แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ  แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ. แƒกแƒ”แƒกแƒ˜แƒ˜แƒก แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ”แƒก.
  • Cacheability - แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒžแƒแƒกแƒฃแƒฎแƒ”แƒ‘แƒ˜แƒก แƒฅแƒ”แƒจแƒ˜แƒ แƒ”แƒ‘แƒ แƒกแƒแƒ”แƒ แƒ—แƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒšแƒแƒ“.

แƒ แƒ แƒแƒ แƒ˜แƒก CRUD?

แƒ™แƒ แƒฃแƒ“ แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฆแƒฌแƒ”แƒ แƒก แƒแƒ—แƒฎ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒก (แƒจแƒ”แƒฅแƒ›แƒœแƒ, แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ, แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒฌแƒแƒจแƒšแƒ).

REST API-แƒจแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜ แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ˜แƒกแƒ”แƒ— แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ–แƒ”, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒ, แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ, แƒ“แƒแƒ“แƒ”แƒ‘แƒ, แƒฌแƒแƒจแƒšแƒ.

แƒแƒฎแƒšแƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜, แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ— API-แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ.

แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒชแƒ˜แƒขแƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒ˜ แƒฎแƒ”แƒšแƒแƒ•แƒœแƒฃแƒ แƒ˜ แƒ˜แƒœแƒขแƒ”แƒšแƒ”แƒฅแƒขแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. AI แƒ“แƒฆแƒ”แƒกแƒ“แƒฆแƒ”แƒแƒ‘แƒ˜แƒ— แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ›แƒ–แƒแƒ แƒ“แƒ˜ แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒแƒ แƒ“แƒ Python แƒแƒ แƒ˜แƒก แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ AI-แƒกแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒแƒ› API-แƒ˜แƒ— Python-แƒ˜แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ’แƒแƒ˜แƒ’แƒแƒก AI-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ“แƒ แƒจแƒ—แƒแƒ’แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒแƒก แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒ˜แƒฆแƒฌแƒ”แƒ•แƒ”แƒ‘แƒ˜แƒ—. แƒ—แƒฃ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒก แƒแƒฅแƒ•แƒก แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ–แƒ แƒ”แƒ‘แƒ˜ แƒแƒ› แƒ—แƒ”แƒ›แƒแƒ–แƒ”, แƒ›แƒแƒก แƒจแƒ”แƒ”แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒ—แƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ แƒกแƒแƒชแƒแƒ•แƒจแƒ˜.

แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ— แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜แƒ— แƒ“แƒ Flask-แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—:

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

แƒแƒ› แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒจแƒ˜, Flask, Api แƒ“แƒ Resource แƒแƒ แƒ˜แƒก แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ.

Reqparse แƒแƒ แƒ˜แƒก Flask-RESTful แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜... แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒ“แƒแƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ—แƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ—แƒ˜ แƒชแƒ˜แƒขแƒแƒขแƒ˜แƒก แƒกแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“.

แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒชแƒ˜แƒขแƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒก แƒฎแƒ”แƒšแƒแƒ•แƒœแƒฃแƒ แƒ˜ แƒ˜แƒœแƒขแƒ”แƒšแƒ”แƒฅแƒขแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

แƒ แƒ”แƒžแƒแƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก:

  • แƒชแƒ˜แƒคแƒ แƒฃแƒšแƒ˜ ID;
  • แƒชแƒ˜แƒขแƒแƒขแƒ˜แƒก แƒแƒ•แƒขแƒแƒ แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜;
  • แƒชแƒ˜แƒขแƒแƒขแƒ.

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒ”แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒกแƒแƒกแƒฌแƒแƒ•แƒšแƒ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒ, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒœแƒแƒฎแƒแƒ•แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒก แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒกแƒ˜แƒแƒจแƒ˜. แƒ แƒ”แƒแƒšแƒฃแƒ  แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ“ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒก.

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."
    }
]

แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— Quote แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ™แƒšแƒแƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ API แƒ‘แƒแƒšแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒก. แƒ™แƒšแƒแƒกแƒจแƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒชแƒฎแƒแƒ“แƒ“แƒ”แƒก แƒแƒ—แƒฎแƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜: แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ, แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒ, แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒฌแƒแƒจแƒšแƒ.

แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ— GET แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒ—

แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒชแƒ˜แƒขแƒแƒขแƒ แƒ›แƒ˜แƒกแƒ˜ ID-แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒ—, แƒแƒœ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ—แƒ˜ แƒชแƒ˜แƒขแƒแƒขแƒ, แƒ—แƒฃ ID แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜.

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 แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ— แƒชแƒ˜แƒขแƒแƒขแƒแƒก, แƒ—แƒฃ ID แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ• แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒก, แƒ”.แƒ˜. แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒก แƒ“แƒแƒ แƒ”แƒ™แƒ•แƒ˜แƒกแƒแƒก ID แƒแƒ  แƒ˜แƒงแƒ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜.

แƒ—แƒฃ แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒ”แƒซแƒ”แƒ‘แƒก แƒ‘แƒ แƒญแƒงแƒแƒšแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒ“แƒ แƒžแƒแƒฃแƒšแƒแƒ‘แƒก แƒ˜แƒ›แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš ID-แƒก. แƒ—แƒฃ แƒ•แƒ”แƒ แƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒแƒ˜แƒซแƒ”แƒ‘แƒœแƒ, แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ "แƒชแƒ˜แƒขแƒแƒขแƒ แƒ•แƒ”แƒ  แƒ›แƒแƒ˜แƒซแƒ”แƒ‘แƒœแƒ, 404".

แƒ’แƒแƒฎแƒกแƒแƒ•แƒ“แƒ”แƒ—, แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก HTTP แƒกแƒขแƒแƒขแƒฃแƒกแƒก 200, แƒ—แƒฃ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒ“แƒ 404, แƒ—แƒฃ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ แƒ•แƒ”แƒ  แƒ›แƒแƒ˜แƒซแƒ”แƒ‘แƒœแƒ.

แƒแƒฎแƒšแƒ แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— POST แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒกแƒแƒชแƒแƒ•แƒจแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒชแƒ˜แƒขแƒแƒขแƒ˜แƒก แƒ“แƒแƒกแƒแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ“

แƒ˜แƒก แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒชแƒ˜แƒขแƒแƒขแƒ˜แƒก ID-แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ™แƒ แƒ”แƒคแƒ—. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, 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 แƒ›แƒ”แƒ—แƒแƒ“แƒ›แƒ แƒ›แƒ˜แƒ˜แƒฆแƒ แƒชแƒ˜แƒขแƒแƒขแƒ˜แƒก ID. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, reqparse-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒแƒœ แƒ›แƒแƒ˜แƒซแƒ˜แƒ แƒแƒ•แƒขแƒแƒ แƒ˜ แƒ“แƒ แƒชแƒ˜แƒขแƒแƒขแƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒ“แƒแƒœ, แƒ˜แƒœแƒแƒฎแƒแƒ•แƒ“แƒ แƒ›แƒแƒ— แƒžแƒแƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒšแƒ”แƒฅแƒกแƒ˜แƒ™แƒแƒœแƒจแƒ˜.

แƒ—แƒฃ แƒชแƒ˜แƒขแƒแƒขแƒ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ ID-แƒ˜แƒ— แƒฃแƒ™แƒ•แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก แƒ“แƒ แƒ™แƒแƒ“แƒก 400.

แƒ—แƒฃ แƒชแƒ˜แƒขแƒแƒขแƒ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ ID-แƒ˜แƒ— แƒฏแƒ”แƒ  แƒแƒ  แƒแƒ แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜, แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒฅแƒ›แƒœแƒ˜แƒก แƒแƒฎแƒแƒš แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ ID-แƒ˜แƒ— แƒ“แƒ แƒแƒ•แƒขแƒแƒ แƒ˜แƒ—, แƒแƒกแƒ”แƒ•แƒ” แƒกแƒฎแƒ•แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ—. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒก แƒแƒ›แƒแƒขแƒ”แƒ‘แƒก แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒก 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 แƒ›แƒ”แƒ—แƒแƒ“แƒ˜, แƒฌแƒ˜แƒœแƒ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒแƒ“, แƒ˜แƒฆแƒ”แƒ‘แƒก ID-แƒก แƒ“แƒ แƒจแƒ”แƒงแƒ•แƒแƒœแƒแƒก แƒ“แƒ แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒก แƒชแƒ˜แƒขแƒแƒขแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒก reqparse-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒ—แƒฃ แƒชแƒ˜แƒขแƒแƒขแƒ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ ID-แƒ˜แƒ— แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก, แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒ”แƒ‘แƒก แƒ›แƒแƒก แƒแƒฎแƒแƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒแƒฅแƒ•แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒชแƒ˜แƒขแƒแƒขแƒ 200 แƒ™แƒแƒ“แƒ˜แƒ—. โ€‹โ€‹แƒ—แƒฃ แƒฏแƒ”แƒ  แƒแƒ  แƒแƒ แƒ˜แƒก แƒชแƒ˜แƒขแƒแƒขแƒ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ ID-แƒ˜แƒ—, แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒแƒฎแƒแƒšแƒ˜ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ 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

แƒ”แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒจแƒ”แƒกแƒแƒงแƒ•แƒแƒœแƒแƒ“ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒชแƒ˜แƒขแƒแƒขแƒ˜แƒก ID-แƒก แƒ“แƒ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒ”แƒ‘แƒก ai_quotes แƒกแƒ˜แƒแƒก แƒ’แƒแƒ–แƒ˜แƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒแƒฎแƒšแƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ แƒแƒช แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒแƒ แƒ˜แƒก แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ API-แƒจแƒ˜, แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— แƒ‘แƒ˜แƒšแƒ˜แƒ™แƒ˜ แƒ“แƒ แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒแƒ— Flask.

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 แƒ’แƒแƒกแƒแƒกแƒ•แƒšแƒ”แƒšแƒแƒ“)
* แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ stat-แƒ˜แƒ—
* Debugger แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜แƒ!
* แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก PIN: XXXXXXX

API-แƒก แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ

API-แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒ˜แƒกแƒ˜ แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ.

แƒ”แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ”แƒก curl console แƒฃแƒขแƒ˜แƒšแƒ˜แƒขแƒ˜แƒก แƒแƒœ Insomnia REST แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒแƒœ API-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒ˜แƒ— Rapid API-แƒ–แƒ”.

API-แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜ (Flask-แƒ˜แƒ— แƒ“แƒ RapidAPI-แƒ˜แƒ—)

แƒฉแƒ•แƒ”แƒœแƒ˜ API-แƒก แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒ

RapidAPI แƒแƒ แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ“แƒ˜แƒ“แƒ˜ แƒ‘แƒแƒ–แƒแƒ แƒ˜ แƒ›แƒกแƒแƒคแƒšแƒ˜แƒแƒจแƒ˜ 10-แƒ–แƒ” แƒ›แƒ”แƒขแƒ˜ API-แƒ˜แƒ— (แƒ“แƒ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 000 แƒ›แƒ˜แƒšแƒ˜แƒแƒœแƒ˜ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜แƒ—).

RapidAPI แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒ”แƒ แƒ—แƒ˜แƒแƒœ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒก แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ›แƒฎแƒแƒ แƒ˜แƒก API-แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ“แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒ›แƒแƒแƒฅแƒ•แƒ”แƒงแƒœแƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ API.

แƒ“แƒแƒœ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ”, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฏแƒ”แƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒแƒฅแƒ•แƒ”แƒงแƒœแƒแƒ— แƒ˜แƒ’แƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒ›แƒ” แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”. แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— Heroku. แƒ›แƒแƒกแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒ› แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒแƒก แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”, (แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ”แƒขแƒ˜ แƒ’แƒแƒ˜แƒ’แƒแƒ— แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒแƒฅ).

แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ›แƒแƒแƒฅแƒ•แƒ”แƒงแƒœแƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ API Heroku-แƒ–แƒ”

1. แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ— Heroku.

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ แƒแƒ แƒ˜แƒก Heroku Command Line Interface (CLI) แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ แƒ“แƒ แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ. แƒ”แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก Ubuntu 16+-แƒ–แƒ”.

sudo snap install heroku --classic

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒ“แƒ˜แƒ•แƒแƒ แƒ—:

แƒฐแƒ”แƒ แƒแƒ™แƒฃ แƒจแƒ”แƒกแƒ•แƒšแƒ

2. แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒกแƒแƒญแƒ˜แƒ แƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜.

แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒšแƒแƒ“ แƒฉแƒ•แƒ”แƒœแƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜:

  • แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜.txt แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ˜แƒ—;
  • แƒžแƒ แƒแƒคแƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“;
  • .gitignore - แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ˜แƒชแƒฎแƒ•แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”.

แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜.txt แƒคแƒแƒ˜แƒšแƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฎแƒแƒ–แƒ”แƒ‘แƒก:

  • flask
  • แƒ™แƒแƒšแƒ‘แƒ-แƒ“แƒแƒ›แƒกแƒ•แƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜
  • แƒ’แƒฃแƒœแƒ˜แƒ™แƒแƒ แƒœแƒ˜

แƒ’แƒ—แƒฎแƒแƒ•แƒ—, แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ—, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ— Gunicorn (Python WSGI HTTP แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜) แƒกแƒ˜แƒแƒจแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ.

แƒžแƒ แƒแƒคแƒ˜แƒšแƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก:

แƒ•แƒ”แƒ‘: Gunicorn แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ: แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ

.gitignore-แƒ˜แƒก แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜:

*.pyc
__pycache__/

แƒแƒฎแƒšแƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ, แƒ›แƒแƒ“แƒ˜แƒ—, แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ’แƒแƒ•แƒฃแƒ™แƒ”แƒ—แƒแƒ— git repo-แƒก แƒ“แƒ แƒจแƒ”แƒ•แƒแƒกแƒ แƒฃแƒšแƒแƒ—:

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

3. แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒแƒฎแƒแƒšแƒ˜ Heroku แƒแƒžแƒ˜.

heroku create

แƒกแƒแƒ›แƒแƒ’แƒ˜แƒกแƒขแƒ แƒ แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜แƒก แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ  Heroku แƒ แƒ”แƒžแƒแƒจแƒ˜ แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ:

git push heroku master

แƒแƒฎแƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒ˜แƒฌแƒงแƒแƒ— API แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ’แƒแƒฎแƒกแƒœแƒ˜แƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—:

heroku ps:scale web=1
heroku open
 

API แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ” your-random-heroku-name.herokuapp.com/ai-quotes.

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ Python API RapidAPI แƒ‘แƒแƒ–แƒแƒ แƒ–แƒ”

แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช API แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ“แƒ”แƒ‘แƒ Heroku-แƒ–แƒ”, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒ˜แƒก Rapid API-แƒจแƒ˜. แฒแƒฅ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒแƒ› แƒ—แƒ”แƒ›แƒแƒ–แƒ”.

1. แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— RapidAPI แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜.

API-แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜ (Flask-แƒ˜แƒ— แƒ“แƒ RapidAPI-แƒ˜แƒ—)

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒ— แƒฃแƒคแƒแƒกแƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒก - แƒ”แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ”แƒก Facebook-แƒ˜แƒก, Google-แƒ˜แƒก, GitHub-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

API-แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜ (Flask-แƒ˜แƒ— แƒ“แƒ RapidAPI-แƒ˜แƒ—)

2. แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— API แƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒžแƒแƒœแƒ”แƒšแƒจแƒ˜.

API-แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜ (Flask-แƒ˜แƒ— แƒ“แƒ RapidAPI-แƒ˜แƒ—)

3. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ API-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

API-แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜ (Flask-แƒ˜แƒ— แƒ“แƒ RapidAPI-แƒ˜แƒ—)

4. โ€œAdd APIโ€-แƒ–แƒ” แƒ“แƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜, แƒกแƒแƒ“แƒแƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒแƒ— แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ API-แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

API-แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜ (Flask-แƒ˜แƒ— แƒ“แƒ RapidAPI-แƒ˜แƒ—)

5. แƒแƒฎแƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฎแƒ”แƒšแƒ˜แƒ— แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒแƒ— API แƒ‘แƒแƒšแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ”แƒ‘แƒ˜, แƒแƒœ แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— swagger แƒคแƒแƒ˜แƒšแƒ˜ OpenAPI-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

API-แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜ (Flask-แƒ˜แƒ— แƒ“แƒ RapidAPI-แƒ˜แƒ—)

แƒแƒฎแƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ API-แƒก แƒ‘แƒแƒšแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ‘แƒแƒšแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ”. แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ‘แƒแƒšแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ CRUD-แƒ˜แƒก แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒแƒก (แƒ›แƒ˜แƒ˜แƒฆแƒ”, แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒ”, แƒ“แƒแƒแƒงแƒ”แƒœแƒ”, แƒฌแƒแƒจแƒแƒšแƒ”).

API-แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜ (Flask-แƒ˜แƒ— แƒ“แƒ RapidAPI-แƒ˜แƒ—)

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— GET AI Quote แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ— แƒชแƒ˜แƒขแƒแƒขแƒแƒก (แƒ—แƒฃ ID แƒแƒ แƒ˜แƒก แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜) แƒแƒœ แƒชแƒ˜แƒขแƒแƒขแƒ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ ID-แƒกแƒ—แƒ•แƒ˜แƒก.

แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒญแƒ˜แƒ แƒแƒ— แƒฆแƒ˜แƒšแƒแƒ™แƒก "แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ‘แƒแƒšแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜".

API-แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜ (Flask-แƒ˜แƒ— แƒ“แƒ RapidAPI-แƒ˜แƒ—)

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ— แƒแƒ› แƒžแƒ แƒแƒชแƒ”แƒกแƒก แƒงแƒ•แƒ”แƒšแƒ แƒกแƒฎแƒ•แƒ API แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แฒกแƒฃแƒš แƒ”แƒก แƒแƒ แƒ˜แƒก! แƒ’แƒ˜แƒšแƒแƒชแƒแƒ•แƒ—, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ API!

แƒ—แƒฃ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒฌแƒแƒ•แƒ˜แƒ“แƒ, API แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:

API-แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜ (Flask-แƒ˜แƒ— แƒ“แƒ RapidAPI-แƒ˜แƒ—)

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒ˜แƒแƒ แƒ”แƒ— Python-แƒจแƒ˜ แƒฉแƒ•แƒ”แƒœแƒ˜ RESTful API แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜, แƒฐแƒ”แƒ แƒแƒ™แƒฃแƒก แƒฆแƒ แƒฃแƒ‘แƒ”แƒšแƒจแƒ˜ API-แƒก แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ RapidAPI แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒแƒขแƒ”แƒกแƒขแƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒจแƒ˜ แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜ แƒ˜แƒงแƒ แƒ›แƒฎแƒแƒšแƒแƒ“ API แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ”แƒ‘แƒ˜ - แƒแƒ  แƒ˜แƒงแƒ แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒœแƒ˜แƒฃแƒแƒœแƒกแƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ, แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒขแƒแƒšแƒ”แƒ แƒแƒœแƒขแƒแƒ‘แƒ แƒ“แƒ แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒฃแƒ แƒแƒ‘แƒ.

แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ API-แƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ