Clojure로 REST Service 7 시작 시 구성 파일 읽기

1693 단어
앞에 있는namespace 모듈화의 기초가 있으니 코드를 재구성해 봅시다.
일반적인 웹 응용 프로그램처럼 시작할 때 프로필을 읽고 프로필 정보를 전역 변수에 저장합니다.
나중에 이 변수를 읽어보도록 하겠습니다.
지금 서버에 있습니다.clj 파일에서 다음과 같이 수정되었습니다.
(ns my-website.server
  (:require [noir.server :as server])
  (:use [clojure.tools.logging :only (info error)])
  (:use [my-website.config :as config]))

(server/load-views-ns 'my-website.views)
(server/load-views-ns 'my-website.rest.test)

(defn -main [& m]
  (org.apache.log4j.BasicConfigurator/configure)
  (info "enter -main")
  (def mongo_host (config/host "a.clj"))
  (info mongo_host)
  (let [mode (keyword (or (first m) :dev))
        port (Integer. (get (System/getenv) "PORT" "8080"))]
    (server/start port {:mode mode
                        :ns 'my-website})))

server.clj에서 config를 사용했습니다.clj 파일, 코드는 다음과 같습니다.
(ns my-website.config)

(def load_config (fn [name] (load-file (str "/opt/" name))))

(def host 
  (fn [name] (:mongodb (load_config name))))

마지막,test.clj 코드를 수정하려면:
(ns my-website.rest.test
  (:require [noir.response :as response])
  (:use [noir.core :only [defpage]])
  (:use [my-website.config :as config])
  (:use [my-website.server :as server]))

(defpage "/rest/:id" {:keys [id]} (response/json {:userId id}))

(defpage "/rest/file" {:keys [name]} (str "mongodb host: " server/mongo_host))

service.clj의 -main 함수는 웹 서비스가 시작될 때 실행되며 설정 파일을 읽고 var mongo 에 저장됩니다host 중.
test.clj에서 이 var을 사용하고 브라우저에 되돌려줍니다.
브라우저에서 요청http://localhost:8080/file의 경우 결과는 다음과 같습니다.
mongodb host: localhost

좋은 웹페이지 즐겨찾기