इनपुट स्कीमा
स्क्रैपलेस प्रोजेक्ट की रूट डायरेक्टरी में स्थित INPUT_SCHEMA.json
फ़ाइल को पढ़ता है और ऐक्टर द्वारा आवश्यक मापदंडों को दर्ज करने के लिए स्वचालित रूप से इस फ़ाइल के आधार पर एक उपयोगकर्ता इंटरफ़ेस बनाता है। यह डेवलपर्स के लिए कॉन्फ़िगरेशन को सरल करता है और गैर-डेवलपर्स के लिए इनपुट विकल्पों को अधिक सुलभ बनाता है।
मुख्य उद्देश्य:
- इनपुट सत्यापन ऐक्टर को पारित किए गए डेटा को पूर्वनिर्धारित संरचना और सत्यापन नियमों के अनुरूप सुनिश्चित करने के लिए उपयोग किया जाता है, निष्पादन के दौरान स्थिरता और विश्वसनीयता को बढ़ाता है।
- UI जनरेशन प्लेटफ़ॉर्म स्वचालित रूप से इनपुट स्कीमा के आधार पर एक ग्राफ़िकल कॉन्फ़िगरेशन इंटरफ़ेस बनाता है, जिससे उपयोगकर्ताओं के लिए इनपुट पैरामीटर भरना और प्रबंधित करना आसान हो जाता है।
- एकीकरण समर्थन स्क्रैपलेस स्वचालित रूप से इनपुट स्कीमा के आधार पर इनवोकेशन कोड और कनेक्टर उत्पन्न कर सकता है, जिससे बाहरी सिस्टम ऐक्टर को कॉल और एकीकृत करने के तरीके को सरल बनाया जा सकता है।
इनपुट स्कीमा एक ऐक्टर के लिए इनपुट पैरामीटर को परिभाषित करता है। यह एक JSON ऑब्जेक्ट है जो स्क्रैपलेस प्लेटफ़ॉर्म द्वारा समर्थित विभिन्न फ़ील्ड प्रकारों से बना है। इनपुट स्कीमा के आधार पर, स्क्रैपलेस स्वचालित रूप से पैरामीटर को पार्स करता है और एक संगत उपयोगकर्ता इंटरफ़ेस उत्पन्न करता है।
नीचे एक इनपुट स्कीमा से उत्पन्न UI है।
इनपुट स्कीमा की परिभाषा इस प्रकार है:
{
"title": "Google Trends Input",
"type": "object",
"required": [
"q",
"data_type"
],
"properties": {
"q": {
"title": "Search Query",
"description": "Parameter defines the query or queries you want to search. You can use anything that you would use in a regular Google Trends search. The maximum number of queries per search is 5 (this only applies to `interest_over_time` and `compared_breakdown_by_region` data_type, other types of data will only accept 1 query per search).",
"type": "string",
"default": "Mercedes-Benz,BMW X5"
},
"data_type": {
"title": "Data Type",
"description": "The supported types are: `autocomplete`,`interest_over_time`,`compared_breakdown_by_region`,`interest_by_subregion`,`related_queries`,`related_topics`.",
"type": "string",
"default": "interest_over_time",
"enum": [
{
"label": "Auto complete",
"value": "autocomplete"
},
{
"label": "Interest over time",
"value": "interest_over_time"
},
{
"label": "Compared breakdown by region",
"value": "compared_breakdown_by_region"
},
{
"label": "Interest by region",
"value": "interest_by_subregion"
},
{
"label": "Related queries",
"value": "related_queries"
},
{
"label": "Related topics",
"value": "related_topics"
}
]
},
"date": {
"title": "Date",
"description": "The supported dates are: `now 1-H`, `now 4-H`, `now 1-d`, `now 7-d`, `today 1-m`, `today 3-m`, `today 12-m`, `today 5-y`, `all`.\n\nYou can also pass custom values:\n\nDates from 2004 to present: `yyyy-mm-dd yyyy-mm-dd` (e.g. `2021-10-15 2022-05-25`)\nDates with hours within a week range: `yyyy-mm-ddThh yyyy-mm-ddThh` (e.g. `2022-05-19T10 2022-05-24T22`). Hours will be calculated depending on the tz (time zone) parameter.",
"type": "string",
"default": "today 1-m"
},
"hl": {
"title": "Language",
"description": "Parameter defines the language to use for the Google Trends search. It's a two-letter language code. (e.g., `en` for English, `es` for Spanish, or `fr` for French).",
"type": "string",
"default": "en"
},
"tz": {
"title": "Time Zone",
"description": "time zone offset. default is `420`.",
"type": "string",
"default": "420"
}
// ...
}
}
UI इंटरफ़ेस में प्रेषित इनपुट ऑब्जेक्ट डेटा इस प्रकार है:
{
"q": "Mercedes-Benz,BMW X5",
"data_type": "interest_over_time",
"date": "today 1-m",
"hl": "en",
"tz": "420",
"geo": "",
"cat": "",
"property": "",
"is_return_raw_html": "1"
}
अब, आइए इनपुट स्कीमा के प्रासंगिक विनिर्देशों के बारे में और जानें।
विनिर्देशन
संरचना
{
"title": "Title",
"type": "object",
"required": [], // कौन से फ़ील्ड आवश्यक हैं
"properties": {} // यहाँ इनपुट फ़ील्ड परिभाषित करें
}
गुण | प्रकार | आवश्यक | वर्णन |
---|---|---|---|
title | स्ट्रिंग | हाँ | आपके इनपुट स्कीमा का वर्णन करने के लिए कोई भी पाठ। |
type | स्ट्रिंग | हाँ | यह एक निश्चित मान है, हमेशा “object”। |
required | स्ट्रिंग | हाँ | स्ट्रिंग्स की एक सरणी, प्रत्येक स्ट्रिंग एक आवश्यक गुण का नाम है। |
properties | स्ट्रिंग | हाँ | एक ऑब्जेक्ट, कुंजियाँ गुणों के नाम हैं, मान गुण परिभाषाएँ हैं। |
क्षेत्र
प्रत्येक दर्ज किए गए फ़ील्ड को गुणों के रूप में परिभाषित करने की आवश्यकता है। फ़ील्ड में पूर्णांक, स्ट्रिंग, सरणी, बूलियन, ऑब्जेक्ट और अन्य प्रकार हो सकते हैं। विवरण इस प्रकार हैं:
गुण | मान | आवश्यक | वर्णन |
---|---|---|---|
type | integer , string , array , boolean , object में से एक | हाँ | फ़ील्ड प्रकार की बाधाएँ मिश्रित नहीं की जा सकती हैं। |
title | स्ट्रिंग | हाँ | फ़ील्ड शीर्षक |
description | स्ट्रिंग | हाँ | फ़ील्ड विवरण UI में सहायता पाठ के रूप में प्रदर्शित होते हैं। आप इन विवरणों को लिखने के लिए मार्कडाउन प्रारूप का उपयोग कर सकते हैं। |
default | type के अनुरूप | नहीं | फ़ील्ड डिफ़ॉल्ट मान |
unit | स्ट्रिंग | नहीं | फ़ील्ड प्रदर्शन इकाई |
minimum | संख्या | नहीं | फ़ील्ड न्यूनतम मान |
maximum | संख्या | नहीं | फ़ील्ड अधिकतम मान |
enum | सरणी | नहीं | फ़ील्ड गणना मान (एनम विकल्प) |
रेंडर उदाहरण
स्ट्रिंग
इनपुट उदाहरण: हमने निम्नलिखित गुणों के साथ एक मानक इनपुट फ़ील्ड परिभाषित किया है: प्रकार string
है, शीर्षक Username
है, विवरण Username is the username of the user
है, डिफ़ॉल्ट मान I'm a default value
है, और अधिकतम लंबाई 20
है।
{
"title": "Test Input",
"type": "object",
"required": [
"username"
],
"properties": {
"username": {
"title": "Username",
"description": "Username is the username of the user",
"type": "string",
"default": "I'm a default value",
"maximum": 20
}
}
}
रेंडरिंग परिणाम:
देश चयन उदाहरण:
इस उदाहरण में, हम एक देश चयन इनपुट फ़ील्ड परिभाषित करते हैं। इसका प्रकार string
है, डिफ़ॉल्ट मान china
है, और संभावित मानों की एक गणना प्रदान की गई है।
{
"title": "Test Input Select",
"type": "object",
"required": [
"country"
],
"properties": {
"country": {
"title": "Country",
"type": "string",
"description": "Country selection",
"default": "china",
"enum": [
{
"label": "China",
"value": "china"
},
{
"label": "United States",
"value": "usa"
},
{
"label": "United Kingdom",
"value": "uk"
}
]
}
}
}
रेंडरिंग परिणाम:
पूर्णांक
उदाहरण:
नीचे दिए गए स्कीमा में, इनपुट प्रकार को integer
में बाधित किया गया है, जिसमें अधिकतम और न्यूनतम दोनों मान परिभाषित हैं।
{
"title": "Test Input Number",
"type": "object",
"required": [
"age"
],
"properties": {
"age": {
"title": "Age",
"type": "integer",
"description": "Age is the age of the user",
"default": 18,
"minimum": 12,
"maximum": 100
}
}
}
रेंडरिंग परिणाम:
बूलियन
उदाहरण:
नीचे दिए गए उदाहरण में, इनपुट प्रकार को boolean
में बाधित किया गया है, और इसका डिफ़ॉल्ट मान true
पर सेट है।
{
"title": "Test Input Boolean",
"type": "boolean",
"required": [
"print_log"
],
"properties": {
"print_log": {
"title": "Print Log",
"type": "boolean",
"description": "Print Log is the print log of the user",
"default": true
}
}
}
रेंडरिंग परिणाम:
सरणी
उदाहरण:
नीचे दिए गए उदाहरण में, इनपुट प्रकार को array
में बाधित किया गया है, और एक डिफ़ॉल्ट मान प्रदान किया गया है।
{
"title": "Test Input Array",
"type": "array",
"required": [
"user_tags"
],
"properties": {
"user_tags": {
"title": "User Tags",
"type": "array",
"description": "User Tags is the tags of the user",
"default": [
"user",
"admin"
]
}
}
}
रेंडरिंग परिणाम:
ऑब्जेक्ट
उदाहरण:
नीचे दिए गए उदाहरण में, इनपुट प्रकार को object
में बाधित किया गया है, और एक डिफ़ॉल्ट मान प्रदान किया गया है।
{
"title": "Test Input Object",
"type": "object",
"required": [
"user_info"
],
"properties": {
"user_info": {
"title": "User Info",
"type": "object",
"description": "User Info is the info of the user",
"default": {
"name": "John Doe",
"age": 20,
"email": "john.doe@example.com"
}
}
}
}
रेंडरिंग परिणाम: