Skip to content

더미 API 서버

  1. 프런트앤드와 연동하여 백앤드 서버를 흉내내는 더미 서버
  2. 백앤드 API가 완성되지 않았을때 사용한다.
  1. 메인 프로젝트 생성

    Terminal window
    cargo new dummy-api-server && cd dummy-api-server
  2. 메인 프로젝트의 Cargo.toml 파일에 서비스 프로젝트 등록

    dummy-api-server/Cargo.toml
    [workspace]
    members = ["services"]
  3. 서비스 프로젝트 생성

    Terminal window
    cargo new services && cd services
  4. 서비스 프로젝트의 의존성 추가

    dummy-api-server/services/Cargo.toml
    [dependencies]
    actix-web = "4.11.0"
    actix-rt = "2.11.0"
    serde_json = "1.0.145"
    serde = {version = "1.0.228", features = ["derive"]}
    chrono = {version = "0.4.42", features = ["serde"]}
  5. 서비스 프로젝트의 바이너리 파일의 이름을 설정

    dummy-api-server/services/Cargo.toml
    [[bin]]
    name = "api-server"
  1. 작업 디렉토리로 이동
    Terminal window
    cd dummy-api-server/services
  2. config.json 파일 생성
    Terminal window
    touch config.json
    dummy-api-server/services/config.json
    {
    "address": "localhost",
    "port": 8282
    }
  3. config.json 파일 생성
    dummy-api-server/services/test-data/apis.json
    {
    "apis": [
    {
    "api_path": "/login",
    "method": "POST",
    "data_path": "./api-data/login-post/response.json"
    },
    {
    "api_path": "/todo-list",
    "method": "GET",
    "data_path": "./api-data/todo-list-get/response.json"
    },
    {
    "api_path": "/user-info",
    "method": "GET",
    "data_path": "./api-data/user-info-get/response.json"
    },
    {
    "api_path": "/user-delete",
    "method": "DELETE",
    "data_path": "./api-data/user-delete/response.json"
    },
    {
    "api_path": "/user-update",
    "method": "PUT",
    "data_path": "./api-data/user-update/response.json"
    }
    ]
    }
  1. 작업 디렉토리로 이동
    Terminal window
    cd dummy-api-server/services
  2. 테스트
    Terminal window
    cargo test
    $ cargo test
    Compiling services v0.1.0 (/home/gangil/dev/workspace/rust_projects/dummy-api-server/services)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.48s
    Running unittests src/bin/api-server.rs (/home/gangil/dev/workspace/rust_projects/dummy-api-server/target/debug/deps/api_server-86113ba29ea8c0a8)
    running 4 tests
    test config::test::test_config_into ... ok
    test config::test::test_method_into ... ok
    test config::test::test_get_address ... ok
    test config::test::test_rest_api_into ... ok
    test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    Running unittests src/main.rs (/home/gangil/dev/workspace/rust_projects/dummy-api-server/target/debug/deps/services-1f6a22ddb591c7bf)
    running 0 tests
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
  1. 작업 디렉토리로 이동
    Terminal window
    cd dummy-api-server/services
  2. 서버 실행
    Terminal window
    cargo run -p services --bin api-server