আমি একটি সিমফনি-ভিত্তিক প্রকল্প তৈরি করেছি যা একটি বাহ্যিক এপিআই (জেএসএন) ব্যবহার করছে; আমি যা করেছি তা হ'ল একটি স্বতন্ত্র ক্লায়েন্ট লাইব্রেরি ("ক্লায়েন্ট লাইব্রেরি" - একটি টুকরো সফ্টওয়্যার, সুরকার প্যাকেজ) তৈরি করছিল, এটির নিজস্ব সংস্থার সেট (পিওপিও); এটি সিমফনি দ্বারা সরবরাহিত ইন্টারফেসগুলি ব্যবহার করে কাঠামোর সাথে সংহত করে (উদাহরণস্বরূপ, কেবলমাত্র একটি কাস্টম ব্যবহারকারী সরবরাহকারী তৈরি করে )।
ক্লায়েন্ট এইচটিপি কলগুলিকে "পর্দার আড়ালে" করেন - এটি ভবিষ্যতের পরীক্ষার ক্ষমতার জন্য গুরুত্বপূর্ণ। আপনি আপনার ডেটা উত্সের সাথে যেভাবে যোগাযোগ করেন তা প্রকাশ করতে চান না এবং আপনি চান না যে আপনার পরীক্ষাগুলি লাইভ এপিআইয়ের উপর নির্ভর করে।
ক্লায়েন্ট লাইব্রেরি ইন্টারফেস (উদাহরণস্বরূপ এটি দেখতে কেমন হতে পারে):
class ApiClient {
/**
* @throws SomeApiException If credentials are invalid
* @return ApiUser
*/
public function authenticate($username, $password);
/**
* @return ApiUser
*/
public function findUserByEmail($email);
/**
* @throws SomeApiException If email is invalid
* @return void
*/
public function changeUserEmail(User $user, $newEmail);
}
ক্লায়েন্ট লাইব্রেরি অভ্যন্তরীণভাবে যোগাযোগের জন্য গুজল এবং ফলাফলগুলি ক্যাশে করার জন্য ডক্ট্রাইন ক্যাশে উপাদান ব্যবহার করে। সত্তা অবজেক্ট এবং জসনের মধ্যে ম্যাপিংটি ম্যাপারদের দ্বারা তৈরি করা হয়েছিল, যা একবার লেখা হয়েছিল - খুব বেশিবার পরিবর্তিত হয় না (বা মোটেও ঘটনা)। এই ক্ষেত্রে আমি জেএসএন থেকে এবং থেকে একটি স্বয়ংক্রিয় রূপান্তরকরণের জন্য জেএমএস সিরিয়ালাইজারটি ব্যবহার করার পরামর্শ দেব (আমি ধরে নিই যে আপনি জেএসএন ব্যবহার করেন)।
আপনার রেডিসের মতো একটি ভাল ক্যাশেিং ব্যবস্থা এবং স্থানীয় সঞ্চয়স্থান প্রয়োজন। প্রতিটি অ্যাপ্লিকেশন অনুরোধে এপিআই-কল করা আপনার সার্ভারকে মেরে ফেলবে এবং আপনার অ্যাপ্লিকেশনটিকে তীব্রভাবে ধীর করবে। Http কীভাবে কাজ করে তা বোঝা খুব গুরুত্বপূর্ণ very যদি আপনার এপিআই ক্যাচিং শিরোলেখ ব্যবহার না করে (বা এটি একটি অস্পষ্ট উপায়ে ব্যবহার করে) তবে পরিবর্তনের উপর নজর রাখা খুব কঠিন এবং সংস্থান গ্রহণযোগ্য হবে।
সংযোগটি ভেঙে গেলে ক্লায়েন্টের আচরণ কেমন হওয়া উচিত - সে সম্পর্কেও আপনি ভাবতে চাইবেন ক্লায়েন্টের কি স্থগিত হওয়া ডেটা ব্যবহার করা উচিত? আপনার অ্যাপ্লিকেশন এবং API এর মধ্যে কিছু প্রক্সি সার্ভার ব্যবহার করা ভাল ধারণা হবে। এই ক্ষেত্রে প্রক্সি (বার্নিশের মতো) আপনার অনুরোধগুলিকে গতি বাড়িয়ে দিতে পারে এবং আপনার অ্যাপ্লিকেশনটিকে ধীর না করে ব্যাকগ্রাউন্ডে স্থবির থাকা ডেটা রিফ্রেশ করতে পারে। এটি কোনও এপিআই ব্যর্থতার ক্ষেত্রে আপনার ওয়েবসাইটকে অনলাইনে রাখবে। এর মধ্যে আপনি ডেটা লিখতে সক্ষম নাও হতে পারেন তবে আপনার ব্যবহারকারীরা এখনও ক্যাশেড ডেটা ব্রাউজ করতে সক্ষম হবেন।
এবং মতবাদ সম্পর্কে বলতে গেলে, " যন্ত্রের আইন " দেখুন।