Позвольте для начала процитировать определение и пояснение из Википедии.

> API (Application Programming Interface) — описание способов взаимодействия одной компьютерной программы с другими. Обычно входит в описание какого-либо интернет-протокола (например, SCIM), программного каркаса (фреймворка) или стандарта вызовов функций операционной системы. Часто реализуется отдельной программной библиотекой или сервисом операционной системы. Используется программистами при написании всевозможных приложений. Проще говоря, это набор компонентов, с помощью которых компьютерная программа (бот или же сайт) может использовать другую программу.

От себя добавлю, что API — это один из подклассов *интерфейса* программного обеспечения. Вам, вероятно, хорошо знакомы некоторые другие разновидности интерфейсов, например, графический интерфейс (окошки с кнопками), веб-интерфейс (те же кнопки, но внутри веб-браузера) или текстовый (помните, были когда-то текстовые квесты?). В отличие от перечисленных, API — это интерфейс не между программой и человеком, а между двумя программами. Это своего рода протокол взаимодействия, который позволяет двум программам наладить эффективную коммуникацию.

Представьте, что вам нужно разработать программу, использующую, Telegram. У мессенджера есть графический интерфейс пользователя (GUI), а также веб-интерфейс (позволяющий работать через браузер). В принципе, ничто не мешает написать программу, которая будет запускать Telegram-клиент и работать через него, имитируя поведение человека (вводя буквы, нажимая кнопки и т. п.). Однако это будет крайне неэффективным, поскольку интерфейс рассчитан на человеческое восприятие (программам примерно так же трудно работать с визуальными образами, как людям — с потоками байтов). Поэтому для автоматизации у Telegram есть отдельный интерфейс для программ — API — позволяющий организовать эффективное межпрограммное взаимодействие. (Кстати сам Telegram-клиент также пользуется API для общения со своими серверами.)
ก่อนอื่นผมขออ้างอิงคำจำกัดความและคำอธิบายจากวิกิพีเดียก่อน > API (Application Programming Interface) - คำอธิบายวิธีที่โปรแกรมคอมพิวเตอร์ตัวหนึ่งโต้ตอบกับโปรแกรมอื่น มักจะรวมอยู่ในคำอธิบายของอินเทอร์เน็ตโปรโตคอลบางตัว (เช่น SCIM) กรอบงานซอฟต์แวร์ (กรอบงาน) หรือมาตรฐานการเรียกใช้ฟังก์ชันระบบปฏิบัติการ มักใช้งานโดยไลบรารีซอฟต์แวร์หรือบริการระบบปฏิบัติการแยกต่างหาก ใช้โดยโปรแกรมเมอร์เมื่อเขียนแอปพลิเคชันทุกประเภท พูดง่ายๆ ก็คือนี่คือชุดของส่วนประกอบที่โปรแกรมคอมพิวเตอร์ (บอทหรือเว็บไซต์) สามารถใช้โปรแกรมอื่นได้ ในนามของฉันเอง ฉันจะเพิ่ม API นั้นเป็นหนึ่งในคลาสย่อยของ *อินเทอร์เฟซ* ของซอฟต์แวร์ คุณอาจคุ้นเคยกับอินเทอร์เฟซประเภทอื่นๆ เป็นอย่างดี เช่น อินเทอร์เฟซแบบกราฟิก (หน้าต่างที่มีปุ่ม) อินเทอร์เฟซบนเว็บ (ปุ่มเดียวกัน แต่อยู่ภายในเว็บเบราว์เซอร์) หรืออินเทอร์เฟซข้อความ (โปรดจำไว้ว่าครั้งหนึ่งเคยมีภารกิจข้อความ ?) API ต่างจากที่ระบุไว้ตรงที่เป็นอินเทอร์เฟซไม่ใช่ระหว่างโปรแกรมกับบุคคล แต่เป็นอินเทอร์เฟซระหว่างสองโปรแกรม นี่เป็นโปรโตคอลการโต้ตอบชนิดหนึ่งที่อนุญาตให้สองโปรแกรมสร้างการสื่อสารที่มีประสิทธิภาพ ลองนึกภาพว่าคุณต้องพัฒนาโปรแกรมที่ใช้ Telegram Messenger มีส่วนต่อประสานกราฟิกกับผู้ใช้ (GUI) เช่นเดียวกับส่วนต่อประสานเว็บ (ทำให้คุณสามารถทำงานผ่านเบราว์เซอร์) โดยหลักการแล้ว ไม่มีอะไรขัดขวางคุณจากการเขียนโปรแกรมที่จะเปิดตัวไคลเอนต์ Telegram และทำงานผ่านมัน โดยเลียนแบบพฤติกรรมของมนุษย์ (การป้อนตัวอักษร การกดปุ่ม ฯลฯ) อย่างไรก็ตาม สิ่งนี้จะไม่มีประสิทธิภาพอย่างยิ่ง เนื่องจากอินเทอร์เฟซได้รับการออกแบบมาเพื่อการรับรู้ของมนุษย์ (โปรแกรมมีปัญหาในการทำงานกับภาพเหมือนกับที่ผู้คนมีในจำนวนไบต์) ดังนั้นสำหรับระบบอัตโนมัติ Telegram จึงมีอินเทอร์เฟซแยกต่างหากสำหรับโปรแกรม - API ซึ่งช่วยให้คุณสามารถจัดระเบียบการโต้ตอบระหว่างโปรแกรมได้อย่างมีประสิทธิภาพ (อย่างไรก็ตาม ไคลเอนต์ Telegram เองก็ใช้ API เพื่อสื่อสารกับเซิร์ฟเวอร์ของมันด้วย)
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence