API ডিজাইনের ওভারভিউ

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

ডিজাইন পর্বে, আপনি আপনার API-এর প্রয়োজনীয়তাগুলি সংজ্ঞায়িত করেন। একজন API ডিজাইনার হিসাবে, আপনি যে পরিষেবাগুলি গ্রাহকদের কাছে প্রকাশ করতে চান তার পরিকল্পনা করুন এবং সেই পরিষেবাগুলি অ্যাক্সেস করার জন্য API ডিজাইন করুন৷ আপনি আপনার API প্রয়োজনীয়তা ক্যাপচার করতে নিম্নলিখিত নথিগুলির মধ্যে একটি তৈরি করুন:

  • একটি OpenAPI নথি
  • একটি গ্রাফকিউএল স্কিমা

নিম্নলিখিত বিভাগগুলি OpenAPI এবং GraphQL নথি এবং আপনার API-এর জীবনচক্রে তাদের ভূমিকা সম্পর্কে আরও তথ্য প্রদান করে। দুটি API ডিজাইন বিকল্পের তুলনার জন্য, এই ব্লগ পোস্টে তুলনা করা REST এবং GraphQL দেখুন।

OpenAPI স্পেসিফিকেশন কি?


"ওপেনএপিআই ইনিশিয়েটিভ (ওএআই) সোয়াগার স্পেসিফিকেশনের উপর ভিত্তি করে একটি বিক্রেতা নিরপেক্ষ API বর্ণনা বিন্যাস তৈরি, বিকাশ এবং প্রচারের উপর দৃষ্টি নিবদ্ধ করে।" OpenAPI উদ্যোগ সম্পর্কে আরও তথ্যের জন্য, https://openapis.org দেখুন।

একটি OpenAPI নথি একটি RESTful API বর্ণনা করতে একটি আদর্শ বিন্যাস ব্যবহার করে। JSON বা YAML ফর্ম্যাটে লিখিত, একটি OpenAPI নথি মেশিন পাঠযোগ্য, তবুও মানুষের পক্ষে পড়া এবং বোঝা সহজ। ওপেনএপিআই স্পেসিফিকেশন একটি API-এর উপাদানগুলির আনুষ্ঠানিক বর্ণনা যেমন এর বেস পাথ, পাথ এবং ক্রিয়া, শিরোনাম, ক্যোয়ারী প্যারামিটার, বিষয়বস্তুর প্রকার, প্রতিক্রিয়া মডেল এবং আরও অনেক কিছু সক্ষম করে। উপরন্তু, একটি OpenAPI নথি সাধারণত API ডকুমেন্টেশন তৈরি করতে ব্যবহৃত হয়।

এখানে একটি OpenAPI নথি থেকে একটি খণ্ড যা Apigee এর সাধারণ হ্যালো ওয়ার্ল্ড নমুনা বর্ণনা করে। আরও তথ্যের জন্য, GitHub- এ OpenAPI স্পেসিফিকেশন দেখুন।

openapi: 3.0.0
info:
  description: OpenAPI Specification for the Apigee mock target service endpoint.
  version: 1.0.0
  title: Mock Target API
paths:
  /:
    get:
      summary: View personalized greeting
      operationId: View a personalized greeting
      description: View a personalized greeting for the specified or guest user.
      parameters:
        - name: user
          in: query
          description: Your user name.
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Success
  /help:
    get:
      summary: Get help
      operationId: Get help
      description: View help information about available resources in HTML format.
      responses:
        "200":
          description: Success
...

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

এখানে অনেকগুলি JSON এবং YAML উদাহরণ রয়েছে OpenAPI নথি যা আপনি OpenAPI স্পেসিফিকেশন রিপোজিটরি থেকে ডাউনলোড করতে পারেন।

একটি GraphQL স্কিমা কি?

একটি GraphQL স্কিমা একটি ক্লায়েন্টকে জিজ্ঞাসা করার জন্য আপনার API-এ উপলব্ধ ডেটা বর্ণনা করে।

গ্রাফকিউএল ব্যবহারের সুবিধার মধ্যে রয়েছে:

  • একটি একক এন্ডপয়েন্ট একটি প্রদত্ত অপারেশনের জন্য সমস্ত ক্ষেত্রে অ্যাক্সেস প্রদান করে
  • স্কিমা ডেফিনিশন ল্যাঙ্গুয়েজ নামক শক্তিশালী ক্যোয়ারী ল্যাঙ্গুয়েজ, আপনাকে আপনার প্রয়োজনীয় ডেটা অ্যাক্সেস করতে সক্ষম করে, ডেটার অতিরিক্ত-ফেচিং বা কম-আনয়ন রোধ করে
  • প্রশ্নের প্রক্রিয়াকরণ সমান্তরালভাবে ঘটে

GraphQL সম্পর্কে আরও তথ্যের জন্য, graphql.org দেখুন।

নিম্নলিখিতটি একটি GraphQL স্কিমার উদাহরণ প্রদান করে যা ডেটা এন্ট্রি পয়েন্ট (কোয়েরি টাইপ), উপলব্ধ লেখার ক্রিয়াকলাপ (মিউটেশন টাইপ) এবং ডেটা প্রকারগুলিকে সংজ্ঞায়িত করে।

type Query {
  Greeting: String
  students: [Student]
}
type Mutation {
  createStudent(firstName: String!, lastName: String!): Student!
}
type Subscription {
  newStudent: Student!
}
type Student {
  Id: ID!
  firstName: String!
  lastName: String!
  password: String!
  collegeId: String!
}

JSON পেলোড হিসাবে আপনার প্রয়োজনীয় সঠিক ডেটা ফেরত দিতে আপনি GraphQL স্কিমা জিজ্ঞাসা করতে পারেন।

গ্রাফকিউএল কোয়েরি এবং ফলাফল

যদি আমি একটি নথি পরিবর্তন করি তাহলে কি হবে?

প্রতিটি OpenAPI বা GraphQL নথি সমগ্র API জীবনচক্র জুড়ে সত্যের উৎস হিসেবে কাজ করে। একই নথি API জীবনচক্রের প্রতিটি পর্যায়ে ব্যবহার করা হয়, বিকাশ থেকে প্রকাশনা থেকে পর্যবেক্ষণ পর্যন্ত।

আপনি যখন একটি দস্তাবেজ সম্পাদনা বা মুছে ফেলেন, তখন এটি লাইনের নিচে প্রভাব ফেলে:

  • আপনি যদি একটি দস্তাবেজ সম্পাদনা করেন, তাহলে আপনাকে API প্রক্সি এবং এর সংস্থানগুলিকে প্রকাশ করে এমন যেকোনো API পণ্য সহ সংশ্লিষ্ট শিল্পকর্মগুলিকে ম্যানুয়ালি সম্পাদনা করতে হবে এবং নথিতে বাস্তবায়িত পরিবর্তনগুলিকে প্রতিফলিত করতে API রেফারেন্স ডকুমেন্টেশন পুনরায় তৈরি করতে হবে৷
  • আপনি যদি একটি নথি মুছে ফেলেন, তাহলে আপনাকে API প্রক্সি সহ সংশ্লিষ্ট শিল্পকর্মগুলিকে ম্যানুয়ালি মুছে ফেলতে হবে এবং সম্পর্কিত সংস্থানগুলি মুছে ফেলার জন্য যে কোনও API পণ্য সম্পাদনা করতে হবে এবং নথি এবং এর সংস্থানগুলিকে অপসারণ প্রতিফলিত করতে API রেফারেন্স ডকুমেন্টেশন পুনরায় তৈরি করতে হবে৷

আমি একটি OpenAPI নথি থেকে একটি API প্রক্সি তৈরি করলে কি হবে?

এজে, আপনি আপনার OpenAPI নথি থেকে আপনার API প্রক্সি তৈরি করতে পারেন। মাত্র কয়েকটি ক্লিকে, আপনার কাছে স্বয়ংক্রিয়ভাবে তৈরি পথ, পরামিতি, শর্তসাপেক্ষ প্রবাহ এবং লক্ষ্যের শেষ পয়েন্ট সহ একটি API প্রক্সি থাকবে। তারপরে, আপনি OAuth নিরাপত্তা, রেট সীমিতকরণ এবং ক্যাশিংয়ের মতো বৈশিষ্ট্যগুলি যোগ করতে পারেন।

আপনি একটি OpenAPI নথি থেকে একটি API প্রক্সি তৈরি করতে পারেন, যেমনটি নিম্নলিখিত বিভাগে বর্ণিত হয়েছে:

আপনি যখন আপনার API প্রকাশ করেন , তখন আপনি API রেফারেন্স ডকুমেন্টেশন তৈরি করতে OpenAPI নথির একটি স্ন্যাপশট নেন। সেই স্ন্যাপশটটি স্পেক স্টোরে বর্ণনা নথির একটি নির্দিষ্ট সংশোধন উপস্থাপন করে।