ক্লোজার কম্পাইলার সার্ভিস API এর সাথে যোগাযোগ করা হচ্ছে

ক্লোজার কম্পাইলার পরিষেবা অবহেলিত, এবং সরানো হবে। পরিবর্তে স্থানীয়ভাবে কম্পাইলার চালানো বিবেচনা করুন.

ওভারভিউ

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

এই টিউটোরিয়ালটি আপনাকে ক্লোজার কম্পাইলার সার্ভিসে জাভাস্ক্রিপ্ট পাঠানো এবং ক্লোজার কম্পাইলার আউটপুট ফেরত পাওয়ার প্রক্রিয়ার মধ্য দিয়ে নিয়ে যায়। উদাহরণটি ক্লোজার কম্পাইলার কম্পাইলেশনের সবচেয়ে মৌলিক স্তর ব্যবহার করে, যা আপনার জাভাস্ক্রিপ্ট থেকে মন্তব্য এবং হোয়াইটস্পেসকে সরিয়ে দেয়।

এই টিউটোরিয়ালটি অনুমান করে যে আপনার জাভাস্ক্রিপ্ট এবং HTTP এর সাথে প্রাথমিক পরিচিতি রয়েছে। যদিও এটি ক্লোজার কম্পাইলার পরিষেবাতে জাভাস্ক্রিপ্ট জমা দেওয়ার জন্য একটি পাইথন স্ক্রিপ্ট ব্যবহার করে, উদাহরণটি অনুসরণ করার জন্য আপনাকে পাইথন জানতে হবে না।

API এর সাথে কীভাবে যোগাযোগ করবেন

  1. অনুরোধের পরামিতি নির্ধারণ করুন

    আপনি ক্লোজার কম্পাইলার সার্ভারে HTTP POST অনুরোধ করে ক্লোজার কম্পাইলার পরিষেবার সাথে ইন্টারঅ্যাক্ট করেন। প্রতিটি অনুরোধের সাথে আপনাকে অবশ্যই কমপক্ষে নিম্নলিখিত পরামিতিগুলি পাঠাতে হবে:

    js_code বা code_url

    এই প্যারামিটারের মানটি জাভাস্ক্রিপ্টকে নির্দেশ করে যা আপনি কম্পাইল করতে চান। আপনাকে অবশ্যই এই প্যারামিটারগুলির মধ্যে অন্তত একটি অন্তর্ভুক্ত করতে হবে এবং আপনি উভয়ই অন্তর্ভুক্ত করতে পারেন। js_code প্যারামিটারটি অবশ্যই একটি স্ট্রিং হতে হবে যাতে জাভাস্ক্রিপ্ট থাকে, যেমন alert('hello')code_url প্যারামিটারে অবশ্যই একটি JavaScript .js ফাইলের URL থাকতে হবে যা HTTP এর মাধ্যমে উপলব্ধ।

    আপনি js_code:path/to/filename.js ফর্মে নামযুক্ত উত্স পরামিতিগুলিও অন্তর্ভুক্ত করতে পারেন। প্রতিটি ফাইল একটি ভার্চুয়াল ফাইল সিস্টেমে তৈরি করা হবে, যা ECMASCRIPT6 এ সমর্থিত importexport বিবৃতির মাধ্যমে প্রমিত মডিউল সক্ষম করে।

    compilation_level

    এই প্যারামিটারের মান আপনার জাভাস্ক্রিপ্টে প্রয়োগ করার জন্য কম্প্রেশন এবং অপ্টিমাইজেশনের মাত্রা নির্দেশ করে। তিনটি সম্ভাব্য সংকলন স্তর রয়েছে: WHITESPACE_ONLY , SIMPLE_OPTIMIZATIONS , এবং ADVANCED_OPTIMIZATIONS । এই উদাহরণটি WHITESPACE_ONLY সংকলন ব্যবহার করে, যা কেবল মন্তব্য এবং সাদা স্থান ছিন্ন করে।

    compilation_level প্যারামিটার ডিফল্ট SIMPLE_OPTIMIZATIONS এর মান।

    output_info

    এই প্যারামিটারের মানটি নির্দেশ করে যে আপনি কম্পাইলার থেকে কী ধরনের তথ্য চান। চার ধরনের সম্ভাব্য আউটপুট রয়েছে: compiled_code , warnings , errors , এবং statistics । এই উদাহরণটি compiled_code মান ব্যবহার করে, যা ক্লোজার কম্পাইলার পরিষেবাকে অনুরোধে প্রাপ্ত জাভাস্ক্রিপ্টের সংকুচিত সংস্করণটি আউটপুট করতে বলে।

    output_format

    ক্লোজার কম্পাইলার পরিষেবার আউটপুটের বিন্যাস। তিনটি সম্ভাব্য আউটপুট ফরম্যাট আছে: text , json , বা xml । এই উদাহরণটি মান text ব্যবহার করে, যা কাঁচা পাঠকে আউটপুট করে।

    output_format প্যারামিটারটি text একটি মানের সাথে ডিফল্ট হয়।

    এই প্রয়োজনীয় প্যারামিটার এবং অতিরিক্ত ঐচ্ছিক প্যারামিটার সম্পর্কে আরও তথ্যের জন্য, API রেফারেন্স দেখুন।

    এই পরিচায়ক টিউটোরিয়ালের উদাহরণটি শুধুমাত্র ক্লোজার কম্পাইলার পরিষেবাতে কাঁচা জাভাস্ক্রিপ্টের একটি লাইন পাঠায়, তাই এটি code_url এর পরিবর্তে js_code ব্যবহার করে। এটি WHITESPACE_ONLY এর একটি compilation_level ব্যবহার করে, text একটি output_format সহ raw টেক্সট আউটপুট চায় এবং compiled_code এর একটি output_info ধরনের জন্য জিজ্ঞাসা করে।

  2. ক্লোজার কম্পাইলার সার্ভিসে একটি পোস্টের অনুরোধ করুন

    ক্লোজার কম্পাইলার পরিষেবা থেকে আউটপুট পেতে, ক্লোজার কম্পাইলার পরিষেবা API URL-এ পোস্ট অনুরোধে ধাপ 1-এ আপনি যে প্যারামিটারগুলি বেছে নিয়েছেন তা পাঠান। এটি করার একটি উপায় হল ক্লোজার কম্পাইলার সার্ভিস API-এর হ্যালো ওয়ার্ল্ডের মতো একটি সাধারণ HTML ফর্ম।

    বিকাশের সময় এই ধরনের একটি ফর্ম ব্যবহার করতে, তবে, আপনাকে ব্রাউজার থেকে আউটপুটটি অনুলিপি করতে হবে এবং এটি একটি .js ফাইলে পেস্ট করতে হবে। যদি, পরিবর্তে, আপনি ক্লোজার কম্পাইলার পরিষেবাতে অনুরোধ পাঠানোর জন্য একটি ছোট প্রোগ্রাম লেখেন, আপনি সরাসরি একটি ফাইলে ক্লোজার কম্পাইলার আউটপুট লিখতে পারেন। উদাহরণস্বরূপ, নিম্নলিখিত পাইথন স্ক্রিপ্টটি ক্লোজার কম্পাইলার পরিষেবাতে অনুরোধ পাঠায় এবং প্রতিক্রিয়াটি লেখে:

    #!/usr/bin/python2.4
    
    import httplib, urllib, sys
    
    # Define the parameters for the POST request and encode them in
    # a URL-safe format.
    
    params = urllib.urlencode([
        ('js_code', sys.argv[1]),
        ('compilation_level', 'WHITESPACE_ONLY'),
        ('output_format', 'text'),
        ('output_info', 'compiled_code'),
      ])
    
    # Always use the following value for the Content-type header.
    headers = { "Content-type": "application/x-www-form-urlencoded" }
    conn = httplib.HTTPSConnection('closure-compiler.appspot.com')
    conn.request('POST', '/compile', params, headers)
    response = conn.getresponse()
    data = response.read()
    print data
    conn.close()
    

    দ্রষ্টব্য: এই উদাহরণটি পুনরুত্পাদন করতে, উইন্ডোজ ব্যবহারকারীদের পাইথন ইনস্টল করতে হতে পারে। উইন্ডোজের অধীনে পাইথন ইনস্টল এবং ব্যবহার করার নির্দেশাবলীর জন্য পাইথন উইন্ডোজ FAQ দেখুন।

    এই স্ক্রিপ্টটি কমান্ড লাইন আর্গুমেন্ট হিসাবে এটিতে পাস করা জাভাস্ক্রিপ্টকে অপ্টিমাইজ করে। উপরের compile.py নামক একটি ফাইলে পেস্ট করুন, ফাইলটিকে এক্সিকিউটেবল করার জন্য অনুমতি পরিবর্তন করুন এবং নিম্নলিখিত কমান্ডটি চালান:

    $ python compile.py 'alert("hello");// This comment should be stripped'
    

    এই কমান্ডটি ক্লোজার কম্পাইলার প্রতিক্রিয়া থেকে সংকুচিত কোড প্রিন্ট করে:

    alert("hello");
    

    কারণ এই উদাহরণটি মৌলিক সংকলন ব্যবহার করে, কম্পাইলার মন্তব্যটি বন্ধ করা ছাড়া অন্য কিছু করে না।

    এই স্ক্রিপ্ট সম্পর্কে নোট করার জন্য এখানে কয়েকটি জিনিস রয়েছে:

    • একটি URL-এনকোডেড স্ট্রিং হিসাবে পরামিতিগুলি HTTPS সংযোগের অনুরোধ পদ্ধতিতে প্রেরণ করা হয়। urllib.urlencode এ কল করার পরে, প্যারামস ভেরিয়েবলে নিম্নলিখিত স্ট্রিং থাকে:
      js_code=alert%28%22hello%22%29%3B%2F%2F+This+comment+should+be+stripped&output_info=compiled_code&out=text&compilation_level=WHITESPACE_ONLY
          
      আপনি যদি নিজের স্ক্রিপ্ট লেখেন, তাহলে স্ক্রিপ্টটি ইউআরএল-এনকোড করা বিষয়বস্তু এভাবে পোস্ট করবে।
    • অনুরোধে সর্বদা application/x-www-form-urlencoded এর একটি Content-type শিরোনাম থাকতে হবে
  3. পরবর্তী পদক্ষেপ

    আরও বাস্তবসম্মত বিকাশের দৃশ্যে আরও ভাল কম্প্রেশন অর্জনের জন্য পরিষেবাটি ব্যবহার করতে শিখতে , API এর সাথে ফাইল কম্প্রেস করা চালিয়ে যান।