Best practice for controller method returns based on route

Viewed 28

In PossessionController I have store method like this

public function store(StorePossessionRequest $r)
{
    $poss = Possession::create($r->validated());

    Log::quickStore(Possession::class, null, $poss);
    
    if (request()->url() != route('possessions.create'))
        return response(['message' => 'OK.'], 200);
    return redirect()->route('possessions');
}

The url condition is there because this method is accessible from two uris:

https://apk.test/possessions/create
https://apk.test/api/possessions/create

Is it a good practice to decide what will be returned based on uri, or should it be done differently?

Thank you.

1 Answers

Try this

if (Request::wantsJson()) {
    // return JSON-formatted response
} else {
    // return HTML response
}
Related