Vapor의 Config 정보

9825 단어 SwiftVapor

작업 환경


이 글은 아래의 환경에서 동작을 확인했다.
  • Xcode9.0
  • MacOS Sierra 버전 10.12.6
  • Vapor Toolbox: 2.0.4
  • Vapor Framework: 2.2.2
  • Config


    다음은 Vaper 응용 프로그램 설정에 대한 설명입니다.
    서버 측의 응용 프로그램은 일반적으로 개발 환경, 무대 환경, 정식 환경 등 환경으로 나누어 개발한다.
    VaporConfig에서는 디렉토리에 JSON 파일을 배치하여 응용 프로그램을 설정할 수 있습니다.

    우선 사용해 보자


    Vapor 응용 프로그램을 만들면Config 디렉토리가 생성된 것을 확인할 수 있습니다.
    서버 설정 파일server.json의 내용을 보십시오.
    ./
    ├── Config/
    │   ├── server.json
    
    기본값은 다음과 같습니다.
    {
        "host": "0.0.0.0",
        "port": 8080,
        "securityLayer": "none"
    }
    
    이것은 응용 프로그램이 시작될 때 호스트 지정 0.0.0.0 포트 지정 8080 을 의미한다.
    실제 vapor run 프로그램이 시작되면 http://localhost:8080 시작됩니다.

    밀크 케이크


    Config에서는 자체 키를 지정할 수도 있습니다.
    실제 server.json에 다음custom-key 키를 추가합니다.
    {
        "host": "0.0.0.0",
        "port": 8080,
        "securityLayer": "none",
        "custom-key": "custom value" 
    }
    
    응용 프로그램이 호출될 때는 다음과 같다.
    let customeValue = drop.config["server", "custom-key"]?.string ?? "default"
    

    구성 구문

    Config 액세스 디렉터리 설정의 문법은 drop.config[fileName, path, to, key]이다.Config/app.json를 열고 다음과 같은 JSON 파일을 만들어 보세요.
    {
      "test-names": [
        "joe",
        "jane",
        "sara"
      ],
      "mongo": {
        "url" : "www.customMongoUrl.com"
      }
    }
    
    test-names 배열의 첫 번째 색인에 액세스하려면 다음 코드를 사용합니다.
    // Sources/Run/main.swift
    //Config/app.jsonのtest-nameを呼び出す
    let firstTestName = drop.config["app", "test-names", 0]?.string ?? "default"
    print(firstTestName)
    
    애플리케이션을 실행한 후
    joe
    출력
    다음 방문 mongo 키의 값.
    // Sources/Run/main.swift
    //Config/app.jsonのmongoを呼び出す
    let monogoURL = drop.config["app", "mongo", "url"]?.string ?? "default"
    print(monogoURL)
    
    애플리케이션을 실행한 후url출력

    고급 설정


    기본 제작
    www.customMongoUrl.com
    은 원형을 유지하는 것이 좋으나 실제 활용할 때 각 환경에서 분리해서 설정하고 싶을 때가 있다.
    Vaporserver.json 디렉토리에 각 환경에 대한 설정을 지정할 수 있는 디렉토리를 생성합니다.
    ./
    ├── Config/
    │   ├── server.json
    │   ├── production/
    │   │   └── server.json
    │   ├── development/
    │   │   └── server.json
    │   └── secrets/
    │       └── server.json
    
    환경을 지정하는 방법은 명령줄에 Config/ 옵션을 지정할 수 있습니다.
    예를 들어, 공식 환경을 지정하려면 다음 절차를 따르십시오.--env이렇게 하면 읽기
    vapor run --env=production
    값을 실행할 수 있는 응용 프로그램입니다.

    우선 순위


    파일의 우선순위를 다음과 같이 설정합니다.
  • CLI
  • Config/secret/이하 파일
  • Config/『환경명>/이하 파일
  • Config/
  • 예를 들어 Config/production/server.json 실행 시 검색되는 순서 CLI가 첫 번째이고 drop.config["server", "host"] 디렉토리에 이어 secrets/ 등 환경 디렉토리에 이어 Config/production/ 바로 아래에 있습니다.Config/gitignore 파일에 추가하는 것을 추천합니다.

    우선 순위 예


    우선도의 예를 보십시오.
    다음secrets/을 생성합니다.
    {
        "port": "9000",
        "host": "0.0.0.0"
    }
    
    이어서 창설Config/server.json.
    {
        "port": "$PORT:8080",
        "host": "127.0.1"
    }
    
    Config/production/server.json 이렇게 쓰면 환경 변수에 접근할 수 있다.$NAME에 $NAME이 없을 경우 기본값을 설정할 수 있습니다.
    응용 프로그램.json을 읽는 코드를 써 보세요.
    let host = drop.config["server", "host"]?.string ?? "0.0.0.0"
    let port = drop.config["server", "port"]?.int ?? 9000
    
    응용 프로그램을 실행할 공식 환경을 지정합니다.$NAME:value
    vapor run --env=production
    변수 추출host 변수 추출 환경 변수의 값.127.0.1 옵션을 지정하지 않고 프로그램을 실행해 보십시오.
    vapor run
    
    그러면 port 변수는 --env, 변수는 host의 값을 얻는다.

    명령줄에서 지정

    0.0.0.0 디렉토리에 JSON 파일을 구성하지 않더라도 명령줄에서 설정을 지정할 수 있습니다.
    다음과 같이 응용 프로그램을 실행할 때port 옵션을 지정합니다.
    vapor run --config:keys.analytics=124ZH61F
    
    응용 프로그램에서 다음과 같은 설정 값을 얻을 수 있습니다.
    let analyticsKey = drop.config["keys", "analytics"]?.string ?? "default"
    print(analyticsKey)
    
    콘솔에서 출력해야 합니다9000.

    Xcode를 통해 환경 지정


    개발에서 Xcode를 사용하는 사람은 Run Skimer를 편집하여 각 환경의 설정을 읽을 수 있습니다.Config/썰매--config를 클릭한다.
    124ZH61F>Run>Edit Schema...에 지정할 옵션을 추가합니다.

    예를 들어, 추가▶Run는 체크 표시를 ON으로 설정합니다.
    그런 다음 를 실행하면 공식 환경의 설정 값을 읽고 응용 프로그램을 실행합니다.

    참고 자료


    Configs Config
    https://docs.vapor.codes/2.0/configs/config/

    좋은 웹페이지 즐겨찾기