back
loading skill details...
Executes HTTP requests and handles JSON serialization in a Flutter app. Use when integrating with REST APIs or parsing structured data from external sources.
HTTP requests and JSON serialization for Flutter REST API integration and data parsing. Covers three HTTP methods (GET, POST, PUT, DELETE) with proper status code validation, HTTPS enforcement, and safe URI construction using Uri.https(). Offers two serialization strategies: manual fromJson/toJson for simple models, and code generation with json_serializable for complex nested structures. Includes background parsing with compute() to prevent UI jank when processing large JSON payloads (1000+ items). Provides platform-specific configuration guidance for Android and iOS network security policies. Handling HTTP and JSON Contents Core Guidelines Workflow: Executing HTTP Operations Workflow: Implementing JSON Serialization Workflow: Parsing Large JSON in the Background Examples Core Guidelines Enforce HTTPS: iOS and Android disable cleartext (HTTP) connections by default. Always use HTTPS endpoints. If HTTP is strictly required for debugging, configure network_security_config.xml (Android) and NSAppTransportSecurity (iOS). Construct URIs Safely: Always use Uri.https(authority, unencodedPath, [queryParameters]) to safely build URLs. This handles encoding and formatting reliably, preventing string concatenation errors. Handle Status Codes: Always validate the http.Response.statusCode. Treat 200 (OK) and 201 (Created) as success. Throw explicit exceptions for other codes (do not return null). Prevent UI Jank: Move expensive JSON parsing operations (taking >16ms) to a background isolate using the compute() function. Structured AI Output: When integrating LLMs, enforce reliable JSON output by specifying a strict JSON schema in the system prompt and setting the response MIME type to application/json. Workflow: Executing HTTP Operations Use this workflow to implement network requests using the http package.
don't have the plugin yet? install it then click "run inline in claude" again.