5 REST APIとは

3588 ワード

1.要求タイプ


1)httpリクエスト


すべてのリソースは名詞で識別されます
•HTTPパスでリソースを要求する
• Ex)
• GET/users
• GET/users/{id}
ex)
$ curl -X GET 'localhost:3000/users'
-->は/get usersを使用せず、名詞型のみを使用します.
特定のリクエスト時に/users/1とともに使用します.

2)HTTP方法


•サーバリソースの動作を示します.(動詞)
•GET:リソースの表示
$ curl -X GET 'localhost:3000/users'
•POST:リソースの作成
$ curl -X POST 'localhost:3000/users' -[data]
:データに基づいて新しいユーザーを作成してください.という意味になります.
•PUT:リソースの更新
•DELETE:リソースの削除
•これは、高速アプリケーションの方法で実現されます.
  • ex)ユーザは、GET/POSTとして要求する.
  • 1) GET
    $ curl -X GET 'localhost:3000/users'
    やれば...
    app.get('/users', (req, res) => {
      res.send('users list') 
    })
    2) POST
    $ curl -X POST 'localhost:3000/users' [data]
    必要に応じて、
    app.post('/users', (req, res) => {
      // create user..
      res.send(user); // 만든 user을 응답.
    })
    作成したユーザーに応答します.

    2.応答タイプ


    HTTP状態コード

  • 2 XX:さあ、あげる
    -200:成功(success)、GET、PUT
    -201:作成済み、POST
    -204:コンテンツなし、DELETE
  • 4 XX:あなたこそ問題です
    -400:エラーリクエスト
    -401:権限なし
    -404:見つかりませんでした
    -409:衝突
  • 5 XX:私こそ問題です
    -500:サーバエラー
  • 3.最初のAPIの作成


    :ユーザー・リストの表示

    1)コード

    const express = require('express')
    const app = express()
    const morgan = require('morgan')
    const port = 3000
    const users = [
      { id: 1, name: 'bek' },
      { id: 2, name: 'alice' },
      { id: 3, name: 'chris' },
    ]
    // DB가 없으므로, 일단 배열을 넣어봄. 
    
    app.use(morgan('dev'))
    
    app.get('/users', (req, res) => {
      res.json(users)
    })
    
    app.listen(port, () => {
      console.log(`Example app listening at http://localhost:${port}`)
    })
    
    

    2)サーバ駆動

    $ npm start
    

    :このように駆動できるのはpackageです.jsonファイルにscriptとして登録されているからです.

    3)要求

    $ curl -X GET 'localhost:3000/users' -v 

    4)サーバ側...



    このようにログを撮ります!
    (nodeのmorganモジュールはログを記録するためのモジュールです!morganモジュールを起動してこのように撮られます.)

    5)出力された情報。



    不等号左:要求情報について
    右側:レスポンスに関する情報.

    *cf) morgan


    出典:https://backback.tistory.com/335[BackGroup]
    現在、コンソールのGET/20051.267 ms-1539などのログはmorganミドルウェアから来ています.
    要求された情報をコンソールに書き込みます.
    var logger = require('morgan');
    
    app.use(logger('dev'));
    関数としてのパラメータ

  • dev

  • short

  • common

  • combined
  • 背中をあげるよ
    パラメータによってコンソールのログが異なります.
    devの場合、GET/20051.267 ms-1539

    通常、shortまたはdevは開発時に使用されます.
    導入時には汎用または組合せを多く使用します.
    パラメータを変えて、ログの違いを直接見てみましょう.
    コンソールだけでなく、ファイルまたはデータベースにログを残すこともできます.
    ただし、これらの操作を行う場合はwinstonモジュールをより多く使用します.