पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

पैकेज विवरणv2.0.0

graphql_2_rest

एक हल्का लाइब्रेरी जो GraphQL क्वेरी को REST फॉरमेट में बदलती है, जिससे किसी भी HTTP क्लाइंट का उपयोग करके रिक्वेस्ट एक्जीक्यूट करना संभव होता है।

AndroidiOSWebmacOSWindowsLinux
30-दिन डाउनलोड
522
लाइक
64
Pub अंक
160

पैकेज इंस्टॉल करें

flutter pub add graphql_2_rest

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

एक हल्का और दुर्लभ Flutter/Dart पैकेज जो GraphQL क्वेरी को REST-संगत HTTP अनुरोध में बदलता है। यह विकासकर्ताओं को एक निश्चित GraphQL क्लाइंट के बिना ग्राफ़क्वेरी संचालन करने के लिए मानक HTTP क्लाइंट का उपयोग करने की अनुमति देता है। यह मौजूदा REST-आधारित इंफ्रास्ट्रक्चर और उपकरणों के साथ एकीकरण को सरल बनाता है, खासकर उन परिस्थितियों में जहां GraphQL क्लाइंट उपलब्ध नहीं हैं या प्राथमिकता नहीं दी जाती है। यह पैकेज सभी प्रमुख प्लेटफॉर्मों का समर्थन करता है, जिससे यह लचीले API संचार की आवश्यकता वाले क्रॉस-प्लेटफॉर्म एप्लिकेशन के लिए आदर्श बन जाता है।

उपयोग

  • पुराने प्रणालियों के लिए GraphQL क्वेरी को REST में परिवर्तित करना
  • GraphQL डेटा के साथ मानक HTTP क्लाइंट का उपयोग करना
  • सीमित परिस्थितियों में API एकीकरण को सरल बनाना
  • सख्त HTTP क्लाइंट नीतियों वाले एप्प्स में GraphQL का उपयोग सक्षम करना
  • हाइब्रिड REST-GraphQL बैकएंड आर्किटेक्चर का समर्थन करना

मुख्य विशेषताएँ

  • हल्का और न्यूनतम निर्भरता
  • GraphQL से REST में स्वचालित प्रश्न रूपांतरण
  • प्लेटफॉर्म के अनुकूलता
  • किसी भी HTTP क्लाइंट के साथ काम करता है
  • pub add कमांड के माध्यम से सरल एकीकरण

इनके लिए उपयुक्त

  • REST क्लाइंट का उपयोग करने वाले विकासकर्मी लेकिन ग्राफ़ क्लाइंट के डेटा की आवश्यकता है
  • REST से GraphQL में प्रगति कर रही टीमें
  • कठोर निर्भरता सीमाओं वाले प्रोजेक्ट
  • कई प्लेटफॉर्म के लिए लक्षित एप्लिकेशन
  • लचीले API परत डिज़ाइन की आवश्यकता वाले उपयोग के मामले

विचार योग्य बातें

  • मूल जीनरेटिक ग्राफ़ क्वेरी समर्थन तक सीमित
  • कोई बिल्ट-इन त्रुटि संभाल या कैशिंग नहीं
  • परिवर्तन या सब्सक्रिप्शन का समर्थन नहीं करता है
  • हेडर्स और प्रमाणीकरण के हस्तचालित प्रबंधन की आवश्यकता होती है
  • जटिल GraphQL स्कीमा के लिए उपयुक्त नहीं

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

GraphQL to REST

Pub style: very good analysis License: MIT

A lightweight library for converting GraphQL queries into REST format, enabling the use of any HTTP client for executing requests.

Usage

To work effectively with the graphql_2_rest library, you primarily need to use two key components: GraphQLQueryPayload and GraphQLQueryBuilder.

  1. GraphQLQueryPayload is responsible for providing the arguments and input models to be used in a GraphQL query. For example, if you have queries like:
const queryA = '''query {
  user(age: %age, firstName: %firstName) {
    first_name
    last_name
    site {
      site_name
    }
  }
}''';

const queryB = '''query {
  user(@userInput) {
    first_name
    last_name
    site {
      site_name
    }
  }
}''';

then you need to create the following GraphQLQueryPayloads with arguments or/and inputs:

class UserQueryPayloadA with GraphQLQueryPayload {
  const UserQueryPayloadA(
    this.age,
    this.firstName,
  );

  final int age;
  final String firstName;

  @override
  Map<String, dynamic> get arguments {
    return {
      'age': age,
      'firstName': firstName,
    };
  }
}

class UserQueryPayloadB with GraphQLQueryPayload {
  const UserQueryPayloadB(
    this.age,
    this.firstName,
  );

  final int age;
  final String firstName;

  @override
  Map<String, Map<String, dynamic>> get inputs {
    return {
      'userInput': {
        'age': age,
        'firstName': firstName,
      },
    };
  }
}
  1. GraphQLQueryBuilder automatically replaces all argument placeholders in the query using values provided by the GraphQLQueryPayload. By default, GraphQLQueryBuilder uses the following prefixes:
  • % for arguments
  • @ for input models

These default prefixes can be customized by specifying different values for argumentPrefix and inputPrefix when creating an instance of the class.

After building the query, you can use any HTTP client to perform the request, but keep in mind that the request must use the POST method:

final dio = Dio(BaseOptions(baseUrl: 'https://endpoint/'));

final queryBuilder = GraphQLQueryBuilder(
  transformer: (query) => query.replaceAll(RegExp(r'\s+'), ' ').trim(),
);

dio.post<dynamic>(
  'graphql/',
  data: queryBuilder.build(
    queryA, //or queryB
    UserQueryPayloadA(27, 'John'), //or UserQueryPayloadB(27, 'John')
  ),
);

श्रेणियाँ

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट

अभी कोई डेटा उपलब्ध नहीं है।