استفاده از raw data در لاراول

استفاده از raw data در لاراول

اگر شما هم جز وب سرویس نویسان قدیمی با زبان پی اچ پی هستید احتمالا با raw data کار کرده‌اید یا نام آن به گوشتان خورده است. داده‌هایی که با استفاده از این روش ارسال می‌شوند، در متغیر HTTP_RAW_POST_DATA در دسترس هستند. قابل ذکر است که این متغیر در پی اچ پی نسخه 5.6 منسوخ شده و در نسخه 7 حذف شده است. پی اچ پی برای استفاده از این نوع داده در نسخه های جدید استفاده از کد زیر را به عنوان راه جایگزین معرفی نموده است:

$postdata = file_get_contents("php://input");

حال اگر قصد دارید از این داده ها در وب سرویس های نوشته شده با لاراول استفاده کنید، می توانید از کلاس RawData به عنوان یک middleware در قسمت وب سرویس های سایتتان استفاده کنید.

namespace App\Http\Middleware;
use Closure;
class RawData
{
	/**
	 * Handle an incoming request.
	 *
	 * @param  \Illuminate\Http\Request $request
	 * @param  \Closure                 $next
	 * @return mixed
	 */
	public function handle($request, Closure $next)
	{
		$raw = json_decode($request->getContent(), true);
		if (json_last_error() == JSON_ERROR_NONE) {
			$request->replace($raw);
		}
		return $next($request);
	}
}

این کلاس طوری طراحی شده است که هم می توانید داده های ساده و هم raw data را به وب سرویس ارسال نمایید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.