Skip to content

Files

Latest commit

 

History

History
 
 

spry_json

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Spry JSON

Spry JSON middleware and request/response extension, used to convert request body to JSON object or set response body to JSON object.

pub package

Install

Add dependencies in pubspec.yaml:

dependencies:
  spry_json: any

Or install via command line:

$ dart pub add spry_json

Usage

The Spry JSON extension is zero-configuration and only needs to be imported to use:

import 'package:spry/spry.dart';
import 'package:spry_json/spry_json.dart';

handler(Context context) {
   context.response.json({"foo": "bar"});
}

Request JSON body

When you need it, you can get the requested JSON object via context.request.json():

handler(Context context) {
   final json = context.request.json();
  
   //...
}

Response JSON body

To return a JSON object, you can use the context.response.json() method:

handler(Context context) {
   context.response.json({"foo": "bar"});
}

It will automatically set the Content-Type to application/json.

Configuration

Spry JSON is zero configuration, but you can create a JSON configuration middleware through SpryJson object:

import 'package:spry_json/spry_json.dart';

final SpryJson json = SpryJson(
   /// options
);

spry.use(json);

Options

Name Type Default Description
reviver Object? Function(Object? key, Object? value) null A function that can be used to transform the results. See JsonCodec for more information.
toEncodable Object? Function(dynamic object) null A function that can be used to encode non-JSON values. See JsonCodec for more information.
validateRequestHeader bool false If true, the middleware will validate the Content-Type header of the request. If the header is not application/json, the middleware will throw a SpryJsonValidateException.
contentType ContentType ContentType.json The ContentType to set on the response and validate for the request.
encoding Encoding utf8 The encoding to use when parsing the request body or encoding the response body (If the response encoding is not set).
hijackParseError bool false If true, no error will be thrown when parsing the request content as json, but null will be returned.