<?php namespace App\Http\Controllers; use Cache; use App\Services\BookInformation\GoogleBooks; use Symfony\Component\HttpKernel\Exception\HttpException; class LookupController { public function lookup($isbn) { if (!preg_match('/^(\d+)$/', $isbn)) { throw new HttpException(400); } return Cache::remember('isbn_' . $isbn, 1440, function() use ($isbn) { $google_books = new GoogleBooks(); return $google_books->lookup($isbn); }); } }