এপিআই এবং ফ্রন্টএন্ড-ব্যাকএন্ডের মধ্যে পার্থক্য


23

আমি একটি "স্ট্যান্ডার্ড" ব্যবসায়িক ওয়েবসাইট লেখার চেষ্টা করছি। "স্ট্যান্ডার্ড" দ্বারা, আমার অর্থ এই সাইটটি প্রারম্ভের শেষের জন্য যথাযথ HTML5, সিএসএস এবং জাভাস্ক্রিপ্ট, একটি ব্যাক-এন্ড (স্টাফ প্রক্রিয়া করার জন্য) চালায় এবং ডাটাবেসের জন্য মাইএসকিউএল চালায়। এটি একটি প্রাথমিক সিআরইউডি সাইট: ডাটাবেস স্টোরের যা আছে তাতে ফ্রন্ট-এন্ড কেবল সুন্দর করে তোলে; ব্যাকএন্ড ডাটাবেসে লেখেন ব্যবহারকারী যা কিছু প্রবেশ করে এবং কিছু প্রক্রিয়াজাতকরণ করে। ঠিক বেশিরভাগ সাইটের মতোই।

কোডিং শুরু করার জন্য আমার গিথুব সংগ্রহস্থলগুলি তৈরি করার সময়, আমি বুঝতে পেরেছি আমি ফ্রন্ট-এন্ড ব্যাক-এন্ড এবং API এর মধ্যে পার্থক্য বুঝতে পারি না । আমার প্রশ্নটি বাক্য বানানোর আরেকটি উপায় হ'ল এই ছবিতে এপিআই আসে কোথায়?

আমি আরও কিছু বিশদ এবং তারপরে আমার কাছে থাকা প্রশ্নগুলি তালিকা বদ্ধ করতে চলেছি - আশা করি এটি আপনাকে ছেলেদেরকে আমার আসল প্রশ্নটি সম্পর্কে আরও ভাল ধারণা দেয় কারণ আমি এতটাই বিভ্রান্ত হয়েছি যে আমি জিজ্ঞাসা করার নির্দিষ্ট প্রশ্নটি জানি না।

আরও কিছু বিশদ:

  • আমি মডেল-ভিউ-কন্ট্রোলার প্যাটার্নটি চেষ্টা করতে চাই। আমি জানি না যে এটি প্রশ্ন / উত্তর পরিবর্তন করে।
  • এপিআইটি বিশ্রামযুক্ত হবে
  • আমি ব্যাক-এন্ডটি প্রত্যাখ্যান করতে এবং বিশেষ প্রশ্নগুলিতে কল করার পরিবর্তে আমার নিজস্ব এপিআই ব্যবহার করতে চাই । আমি মনে করি এই স্টাইলটি আরও সামঞ্জস্যপূর্ণ।

আমার প্রশ্নগুলো:

  • ফ্রন্ট-এন্ড কি ব্যাক-এন্ড কল করে যা এপিআই কল করে? অথবা ফ্রন্ট-এন্ড ব্যাক-এন্ড কল করার পরিবর্তে কেবল এপিআই কল করে?
  • ব্যাক-এন্ড কি কেবলমাত্র একটি এপিআই কার্যকর করে এবং এপিআই ব্যাক-এন্ডে নিয়ন্ত্রণ দেয় (যেখানে ব্যাক-এন্ড চূড়ান্ত নিয়ামক হিসাবে কাজ করে, কাজগুলি অর্পণ করে)?

ফ্রন্ট-এন্ড ব্যাক-এন্ডের পাশাপাশি এপিআইয়ের ভূমিকা ব্যাখ্যা করে দীর্ঘ এবং বিস্তারিত উত্তরগুলি উত্সাহিত করা হয়। যদি উত্তরটি প্রোগ্রামিংয়ের মডেলের উপর নির্ভর করে (মডেল-ভিউ-কন্ট্রোলার প্যাটার্ন ব্যতীত অন্য মডেলগুলি), তবে দয়া করে এপিআই-র চিন্তা করার এই অন্যান্য উপায়গুলি বর্ণনা করুন। ধন্যবাদ। আমি খুব সন্দিহান.

উত্তর:


25

আমি মনে করি যে অনেক ওয়েব বিকাশকারী দ্বারা এপিআই শব্দটি অপব্যবহার ও অপব্যবহারের মাধ্যমে আপনি বিভ্রান্ত হচ্ছেন।

  • এপিআই এর অর্থ অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস, অর্থাত্ বিভিন্ন সিস্টেমের (বা একই সিস্টেমের অংশ) মধ্যে সরকারীভাবে নির্দিষ্ট কোনও ইন্টারফেস।
  • কিছু সময় আগে, ওয়েব স্টার্টআপের জন্য একটি ওয়েব সার্ভিস এপিআইয়ের মাধ্যমে তাদের কিছু অভ্যন্তরীণ ডেটাতে জনসাধারণের অ্যাক্সেসের প্রস্তাব দেওয়া বড় বিষয় হয়ে দাঁড়িয়েছিল, সাধারণত আরএসটি এবং জেএসওএন ব্যবহার করে, তৃতীয় পক্ষের বিকাশকারীদের তাদের সিস্টেমে সংহত করার অনুমতি দেয়। ওয়েব বিকাশকারীরা "এপিআই" শব্দটি নির্দিষ্টভাবে (এবং কেবলমাত্র) "পাবলিক্যালি অ্যাক্সেসযোগ্য ওয়েব পরিষেবাদি" অর্থ ব্যবহার করতে শুরু করেছেন এবং এর প্রয়োগটি অন্তর্ভুক্ত করার জন্য এটির অপব্যবহার করছেন।
  • ফ্রন্টএন্ড এবং ব্যাকএন্ড নিরিখে এই ওয়েব পরিষেবা API (এবং তার বাস্তবায়ন) হয় ব্যাকএন্ড । এর কিছু অংশ প্রকাশ্যে অ্যাক্সেসযোগ্য এবং অন্যগুলি কেবল আপনার সীমান্তে প্রবেশযোগ্য।
  • এর আলাদা নাম হ'ল "পরিষেবা স্তর", অর্থাৎ কোডটি code
    • অগ্রিম কলগুলি পরিষেবাগুলিকে উপস্থাপন করে
    • কোনও প্রদর্শন যুক্তি নেই (এটি সর্বোপরি কাজ, সর্বোপরি)
    • সাধারণ CRUD ক্রিয়াগুলির তুলনায় আরও বিমূর্ত এবং মোটা দানাদার (একটি পরিষেবা কলে প্রায়শই একাধিক CRUD ক্রিয়া জড়িত থাকে এবং একটি ডাটাবেস লেনদেনের মধ্যেই কার্যকর করা উচিত)।
    • অ্যাপ্লিকেশনটির ব্যবসায়িক যুক্তি রয়েছে

আমার সত্যিই বোবা প্রশ্ন আছে। এটি কি পরিষেবা ওরিয়েন্টেড আর্কিটেকচারের সারাংশ?
জনি

@ জোহনি: না - এসওএ বিমূর্ততার অনেক উচ্চ স্তরের একটি ধারণা, আপনি কীভাবে প্রযুক্তিগত স্তরগুলির তুলনায় আপনার ব্যবসায়ের কার্যকারিতা সংগঠিত করেন সে সম্পর্কে এটি আরও বেশি।
মাইকেল বর্গওয়ার্ট

যদিও আমি এটিকে অপব্যবহার বলব না। সম্ভবত "রিব্র্যান্ডিং"? এটি "এমভিসি" এর সাথে একই, যা পিআরসি-র শর্তটি তৈরি হওয়ার সময়ের তুলনায় ওয়েব ডেভলপমেন্টের সাথে সম্পূর্ণ ভিন্ন কিছু প্রসঙ্গে।
টমাস

9

আসুন একটি "ফ্রন্ট-এন্ড" এবং "ব্যাক-এন্ড" উভয় সহ একটি "সাধারণ" ওয়েবসাইটের আর্কিটেকচারটি স্কেচ করি। এবং এটি যেহেতু একটি ওয়েবসাইট, তাই আমাদেরও একটি "ক্লায়েন্ট" থাকবে lic (যেহেতু ব্রাউজারে জাভাস্ক্রিপ্টের কোনও সার্ভারে সরাসরি মাইএসকিউএল কল করার কোনও উপায় নেই))

স্পষ্টতার জন্য, আমরা যে পদগুলি ব্যবহার করছি তা হ'ল:

  • ক্লায়েন্ট : এইচটিএমএল 5 কমপ্লায়েন্ট ব্রাউজার, এসএসপি। এটি ডিওএম এবং জাভাস্ক্রিপ্ট এটিকে কাজে লাগানোর জন্য লোড করেছে।
  • ফ্রন্ট-এন্ড : পিএইচপি সার্ভারটি যা ডমকে নির্দেশ করা হয়, পৃথক পৃষ্ঠার জন্য অনুরোধ করা হয়েছে এবং কিছু এজেএক্স শৈলীর এক্সএমএল বা জেএসএন অ্যাক্সেস পয়েন্ট রয়েছে।
  • ব্যাক-এন্ড : একটি ডাটাবেস সার্ভার, যেখানে মাইএসকিউএল চালিত হয়।

সঠিকভাবে ডিজাইন করা প্রোগ্রামের জন্য, এই উপাদানগুলির প্রত্যেকটির সাথে অন্যদের সাথে যোগাযোগের জন্য একটি ব্যক্তিগত API রয়েছে। "ফ্রন্ট-এন্ড" পিএইচপি কোডটি নির্বিচারে এসকিউএল SELECTস্টেটমেন্টগুলি সরাসরি জারি করে না , বরং সঞ্চিত পদ্ধতিগুলি, প্রাক-অনুমোদিত এসকিউএল বা এমনকি পৃথক পিএইচপি কলগুলি ব্যাক-এন্ড সার্ভারে চলমান পিএইচপির সম্পূর্ণ ভিন্ন উদাহরণে কল করে । এই সঞ্চিত পদ্ধতি বা স্বতন্ত্র HTTP কলগুলি এগুলি একটি এপিআই।

আমরা আমাদের ডিজাইনের কিছু অপরিষ্কারের অনুমতি দিলেও সংজ্ঞাটি পরিবর্তন হয় না। যদি আপনার PHPফাইলটি এসকিউএল স্ট্রিংটি সরাসরি মাইএসকিউএল-এ প্রেরণ করে তবে এটি একটি এএনআই এখনও চালিত হয় , যদিও আপনার পুনরাবৃত্তি হওয়ার সম্ভাবনা নেই।

নোট করুন যে আপনার সম্মুখ-প্রান্তের পিএইচপি কঠোরভাবে সিঙ্ক্রোনাস হওয়া সম্পূর্ণরূপে সম্ভব, কোনও এজেএক্স ভুডু নেই। যদি আপনি একই সিঙ্ক্রোনাস ফাইলে একই বহিরাগত পিএইচপি ফাংশন কল করেন তবে আপনি তাদের ক্লায়েন্ট-সাইড ভেরিসনের মতো একই এপিআই ব্যবহার হিসাবে বিবেচনা করতে পারেন, যদিও এখানে "এপিআই" শব্দটি ব্যবহার কোনও প্রকৃত স্পষ্টতা দিতে পারে না।

অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস হিসাবে একটি এপিআই , সর্বোপরি, এবং সত্যই যে কোনও সময় নিজের প্রোগ্রামের বাইরে কোনও প্রোগ্রাম কল করে। যদি আপনি এমন একটি প্রকল্প লিখছেন যার সামনের দিকের এবং পিছনের দিকের উভয়ই রয়েছে তবে উপরের মতো এজেএক্স / পিএইচপি / মাইএসকিউএল বা এমএস অ্যাক্সেস / এসকিউএল সার্ভার হোন, আপনি একে অপরকে কীভাবে ডাকবেন, তা স্পষ্ট করে নির্দিষ্ট করা সার্থক, যদি কোনও কারণ ব্যতীত কখন কোনও কিছু ভেঙে যায় তখন কোথায় সন্ধান করা উচিত তা সহজ করে দেওয়া।

(এবং সার্বজনীন এপিআইয়ের বিষয় পুরোপুরি অন্যরকম কিছু example আপনার অভ্যন্তরীণ এপিআই কল করার জন্য আপনার নিয়ন্ত্রণের বাইরে যে কোনও কোড রয়েছে এবং আপনি হয় এ জাতীয় ফলাফলকে সরাসরি অস্বীকার করেন বা ভবিষ্যতে এটি করার অধিকার সংরক্ষণ করেন।


3
প্রকৃত অর্থে হ'ল ক্লায়েন্ট সাইড কোড (এইচটিএমএল, জাভাস্ক্রিপ্ট) এবং ব্যাকএন্ড হ'ল সার্ভার কোড (পিএইচপি, পাইথন, রুবি)।
পিথিকোস

-3

একটি এআইপিআইপি, জিইটি, পোষ্ট, ফেচ, ডিলেট করুন ... এর মতো HTTP অনুরোধগুলি পরিচালনা করে যা জেসন, এক্সএমএল ইত্যাদির মতো নির্দিষ্ট ফর্ম্যাটে ডেটা পুনরুদ্ধার করতে আপনার টোকেন অ্যাক্সেসের উপর নির্ভর করে ব্যবহার করা যেতে পারে which

এই "ডেটা" আপনার নিজের অ্যাপ্লিকেশনটিতে এপিআই (অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস) পেতে ব্যবহার করা যেতে পারে যা ডেটা সংগ্রহের জন্য একটি পাবলিক অ্যাক্সেসযোগ্য ওয়েব পরিষেবা যা কিছু দর্শকের কাছে আকর্ষণীয় হতে পারে।

এই ডেটা ব্যর্থতার প্রতিনিধিত্ব করে এমন ডেটার একটি সেট ফেরত দিতে পারে বা এটির API সার্ভার থেকে ডেটা পুনরুদ্ধার করতে পারে

এপিআই বোঝানো হয়েছে পিছনের দিকে যাতে এটি যে কোনও সামনের পরিবেশে ব্যবহার করা যায়। এর অর্থ এটি কোনও ওয়েবে, অ্যান্ড্রয়েড, আইওএস ... অ্যাপ্লিকেশনে ব্যবহার করা যেতে পারে যা https অনুরোধগুলি পরিচালনা করতে পারে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.