什么是RESTful API?

我正在开展一个学校项目,项目名称为:...使用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方法。 这是抽象的吗? 我应该实施创建,编辑,删除等方法吗?

链接地址: http://www.djcxy.com/p/71303.html

上一篇: What is exactly a RESTful API?

下一篇: What exactly is REST architecture and how is it implemented in Rails?