Laravel - 什么是RESTful API?

时间:2015-06-02 20:33:49

标签: api rest laravel

我正在开发一个学校项目,项目名称是:... 使用Web RESTful API ......

所以,我决定编写一个Android应用程序作为客户端,并编写服务器端Laravel Framework(版本5)。

当我听到REST API时,我理解的是:获取,放置,删除,编辑,更新,索引。

这就是为什么我创建了一个名为APIController的类,其中项目包含与“外部”进行通信的所有方法。

我认为用户注册应该如何工作的一个例子:

routes.php

Route::post('/register', array('uses' => 'APIController@postRegisterUser', 'as' => 'postRegisterUser'));

APIController

class APIController extends Controller {

    public function postRegisterUser() {
        $validator = Validator::make(Input::all(), array(
            'email' => 'required|email|unique:users,email',
            'uuid'  => 'required|unique:users,uuid',
            'name'  => 'required|min:6'
        ));

        if ($validator->fails()) {
            return Utils::buildJSONResponse(false, array('Invalid parameters', $validator->messages()), null);
        }

        $password = Utils::generateRandomString(6);

        $result = array(
            'email'     => Input::get('email'),
            'password'  => $password,
            'uuid'      => Input::get('uuid')
        );

        $user = new User();
        $user->email = Input::get('email');
        $user->password = Hash::make($password);
        $user->name = Input::get('name');

        $phone_number = Input::get('phone_number');
        if ($phone_number != null) {
            $user->phone_number = $phone_number;
        }

        if (!$user->save()) {
            return Utils::buildJSONResponse(false, array('An error occurred'), null);
        }

        return $response = Utils::buildJSONResponse(true, null, $result);
    }

}

辅助班:

...
public static function buildJSONResponse($success, $errors, $data) {
        $result = array();

        $result['success']  = $success;
        $result['error']    = $errors;
        $result['data']     = $data;

        return Response::json($result, 200, array(), JSON_PRETTY_PRINT);
    }
 ...

这是正确的做法吗?

这是REST API应该如何工作的吗?

我很困惑,因为我在互联网上看过其他例子,人们说模型类(在我的例子中是User.php)应该包含REST方法。

另外,我找到了这个例子:http://laravel.com/docs/5.0/controllers#restful-resource-controllers

如果查看该表,您将看到控制器类“PhotoController”默认使用REST方法。这是一些抽象吗?我应该实现创建,编辑,删除等方法吗?

0 个答案:

没有答案