Mock Server 30초 — JSON이 OData 서버로 #shorts #SAP #UI5

Moderator

이 글이 답하는 질문

  • 백엔드 없이 UI5 앱을 개발하고 싶다면?
  • MockServer.simulate()이 실제로 어떻게 동작하나?

직접 해보기

1. MockServer 초기화

// webapp/localService/mockserver.js
sap.ui.define([
  "sap/ui/core/util/MockServer"
], function (MockServer) {
  "use strict";
  return {
    init: function () {
      const oServer = new MockServer({
        rootUri: "/sap/opu/odata/sap/ZCATALOG_SRV/"
      });
      MockServer.config({
        autoRespond: true,
        autoRespondAfter: 300
      });
      oServer.simulate(
        "../localService/metadata.xml",
        { sMockdataBaseUrl: "../localService/mockdata" }
      );
      oServer.start();
    }
  };
});

2. Test Data JSON 구조

엔티티셋 이름과 동일한 파일을 mockdata/ 폴더에 배치하면 simulate()가 자동으로 읽어들입니다.

// mockdata/ProductSet.json
{
  "d": {
    "results": [
      { "ProductID": "P001", "ProductName": "키보드", "Price": "89000" },
      { "ProductID": "P002", "ProductName": "모니터", "Price": "450000" }
    ]
  }
}

자주 만나는 함정

  • rootUri 슬래시: 끝에 / 누락 시 요청이 매핑 안 됨
  • 파일명 대소문자: metadata.xml과 엔티티셋명 대소문자가 완전히 일치해야 함

핵심 한 줄

simulate() 한 줄이면 metadata.xml + JSON 파일만으로 CRUD 전 구간이 오프라인에서 동작한다.