Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Auto Json Response Bundle Laravel Package

chrisyue/auto-json-response-bundle

View on GitHub
Deep Wiki
Context7

Auto Json Response Bundle

v1.1.1

A Symfony listener which converts controller result to a appropriate JsonResponse.

SensioLabsInsight

Latest Stable Version License Build Status Scrutinizer Code Quality Code Coverage StyleCI

Features

  • Convert null to JsonResponse(null, 204)
  • Convert $array|$object to JsonResponse($array|$normalizedObject)
  • Convert $array|$object to JsonResponse($array|$normalizedObject, 201) if the method is POST

Installation

$ composer require chrisyue/auto-json-response-bundle
// AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Chrisyue\Bundle\AutoJsonResponseBundle\ChrisyueAutoJsonResponseBundle(),
    );
}

Usage

This bundle will take effect if the route _format parameter is set to json.

# in your route file:
api:
    resource: ...
    defaults:
        _format: json

or in your controller file when you use annotation

/**
 * @Route(...)
 */
public function putAction(Response $response, $_format = 'json')
{
    ...

    return $object;
}

or any other ways to set the $_format to json.

This bundle uses Symfony built-in serializer to normalize object, so the serialize feature should be enable if you want to deal with object:

# app/config/config.yml
framework:
    # ...
    serializer:
        enabled: true

with the power of the built-in serializer, we can do more configuration to meet our needs, like convert camalCase property to snake_case:

# app/config/config.yml
framework:
    serializer:
        enable_annotations: true
        name_converter: serializer.name_converter.camel_case_to_snake_case

More information about serialize, just check symfony official documentation

After v1.1.0, this bundle support specify default serialization groups:

#app/config/config.yml
chrisyue_auto_json_response:
    serializer:
        default_groups:
            - 'group1'
            - 'group2'
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums