코딩이 거의 없는 완전한 가짜 REST API를 위한 고급 JSON 서버 팁

15067 단어 restjavascriptapinode
빠르게 구성 가능한 REST API가 필요한 경우 권장할 수 있습니다JSON-Server.

사용이 정말 간단하고 금방 끝납니다.

표준 방법은 다음과 같은 db.json 파일을 만드는 것입니다.

{
  "posts": [
    { "id": 1, "title": "json-server", "author": "typicode" }
  ],
  "comments": [
    { "id": 1, "body": "some comment", "postId": 1 }
  ],
  "profile": { "name": "typicode" }
}


API를 시작하십시오.
json-server --watch db.json
이 시점에서 API를 요청할 수 있습니다.
http://localhost:3000/posts/1
그리고 얻을 것이다

{ "id": 1, "title": "json-server", "author": "typicode" }


(JSON-Server의 예)

작은 REST 백엔드의 경우 이것이 갈 수 있는 방법이 될 수 있지만 조금 더 분리하고 싶다면 다음과 같은 특별 처리를 제안합니다.
  • 각 엔티티에 대한 js 파일을 생성하거나
  • 각 엔티티에 대해 js 파일과 json 파일을 만듭니다
  • .
  • 원하는 것을 얻기 위해 변환기를 추가하십시오
  • .
  • dbm.js를 만들어 해당 엔티티를 모두 조인합니다
  • .

    즉.

    db.js

    const sites = require('./sites')
    const siteTypes = require('./siteTypes')
    const elevationReferences = require('./elevationReferences')
    const placements = require('./placements')
    const units = require('./units')
    const equipments = require('./equipments')
    const externalIdentifierTypes = require('./externalIdentifierTypes')
    const variables = require('./variables')
    const manufacturers = require('./manufacturers')
    const sensorModels = require('./sensor-models')
    
    module.exports = () => ({
      sites,
      siteTypes,
      elevationReferences,
      placements,
      units,
      externalIdentifierTypes,
      equipments,
      variables,
      sensorModels,
      manufacturers
    })
    


    JavaScript 파일과 마찬가지로:

    고도 참조.js

    module.exports = [
      {
        id: 1,
        name: 'MSL'
      }
    ]
    


    매핑과 함께 postgres 데이터베이스의 json 결과 사용 - 여기서는 간단한 부정입니다.

    units.js

    const units = require('./units.json')
    module.exports = units.map(({ id, code, name, timeBased }) => ({
      id,
      code,
      name,
      timeBased: !!timeBased
    }))
    


    또는 즉석에서 종속성을 만드는 것이 더 좋습니다.

    equipment.js

    const manufacturers = require('./manufacturers')
    const sensorModels = require('./sensor-models')
    const equipments = require('./equipment.json')
    module.exports = equipments.map(({ objectid: id, manufacturer: manufacturerName, model: modelName, virtual, ...rest }) => {
      const manufacturerId = manufacturerName && manufacturers.find(({ name }) => manufacturerName === name)?.id
      const modelId = modelName && sensorModels.find(({ name }) => modelName === name)?.id
      return {
        id,
        ...rest,
        isSensor: !virtual,
        manufacturerId,
        manufacturerName,
        modelId,
        modelName
      }
    })
    


    각 항목에 누락된 ID를 추가합니다.

    센서 모델.js

    const sensorModels = require('./sensor-models.json')
    module.exports = sensorModels.map((sensorModel, index) => ({ id: index, ...sensorModel }))
    


    나는 당신이 아이디어를 얻는다고 생각합니다.

    이를 통해 백엔드 팀이 제공할 수 있는 한 빨리 또는 최소한 더 빠르게 REST API를 얻을 수 있습니다.

    다음은 누락된 항목package.json입니다.

    {
      "name": "server",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "start": "json-server --watch db/db.js --routes routes.json",
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "",
      "license": "ISC",
      "dependencies": {
        "json-server": "^0.17.0"
      }
    }
    

    좋은 웹페이지 즐겨찾기