Skip to content

JSON serialization

Ravi Teja Gudapati edited this page Jun 15, 2017 · 19 revisions

Decoding JSON from the request body and writing encoded JSON to the response are some of the most common tasks involved in implementing REST api. It is for this reason, Jaguar has built-in support for JSON serialization. Request and Response classes provide methods to make JSON serialization easy to use.

Decoding JSON from request body

Request object provides there methods to decode JSON body from the request:

  1. bodyAsJsonMap Deserializes request body into Dart Map
  2. bodyAsJsonList Deserializes request body into Dart List
  3. bodyAsJson Deserializes request body into Dart Map

Example:

...
  Future<Response<String>> addBook(Context ctx) async {
    // Decode request body as JSON Map
    final Map<String, dynamic> json = await ctx.req.bodyAsJsonMap();
    ...
  }
...

Encoding json

Encoding json is also simple.

The Response object has a json method that allow you to easily send json.

This method take a parameter that must be a List or a Map.

The method use JSON.encode under the hood so you can pass a Map or a List to the Response.json function.

Here is an example :

...
  Future<Response<String>> addBook(Context ctx) async {
    ...
    // myJson is Map or a List
    return Response.json(myJson);
  }
...

Basics

Serialization

Forms

Sessions

Authentication

  • Basic authentication
  • Form authentication
  • JSON authentication
  • Authorization
  • OAuth

Database

Security

Real time

  • Server sent events (SSE)
  • Websockets

Deployment

  • systemd
  • Docker
  • AppEngine

API Documentation

Clone this wiki locally