관리 메뉴

멍개의 연구소

[kitura-swift] swift server side - Kitura 맛보기 본문

서버

[kitura-swift] swift server side - Kitura 맛보기

멍개. 2022. 8. 27. 09:11
 

애플도 서버사이드를 제공을 하기 시작을 했습니다.

 

 

이전에 맥 있기전에 리눅스로 시도를 했는데 먼가 불편해서 하지않고 있습니다.

 

우선 Xcode를 먼저 설치를 해줍니다. 설치파일 4기가 설치 완료시 10기가 정도 됩니다

생각보다 용량이 크니 설치되는 동안 기다려 줍니다.

myFirstProject
├── Package.swift
├── Sources
│   └── main.swift
└── Tests

위와같이 디렉토리를 만들어 줍니다 

스위프트를 사용 할 겁니다 .swift로 만들어 줍니다.

 

Package.swift를 작성을 해줍니다.

프로젝트에서 의존적인 패키지입니다.

import PackageDescription

let package = Package(
    name: "myFirstProject",
    dependencies: [
        .Package(url: "https://github.com/IBM-Swift/Kitura.git", majorVersion: 1, minor: 6)
    ])

 

 

서버사이드 코드를 작성을 해줍니다

./Source/main.swift

import Kitura

// Create a new router
let router = Router()

// Handle HTTP GET requests to /
router.get("/") {
    request, response, next in
    response.send("Hello, World!")
    next()
}

// Add an HTTP server and connect it to the router
Kitura.addHTTPServer(onPort: 8090, with: router)

// Start the Kitura runloop (this call never returns)
Kitura.run()

 

8090포트를 열어줍니다.

 

$ swift build # Package.swift의존성 모듈 설치 및 수정 소스 반영

package를 받아줍니다.

node에서 npm install과 같은 역할 + 소스 변경 후 빌드

 

$ .build/debug/myFirstProject

서버실행을 해줍니다.

 

http://localhost:8090을 접속을 해줍니다.

접속을 하게되면 서버사이드에서 로그가 찍히지 않습니다.

 

import PackageDescription

let package = Package(
    name: "myFirstProject",
    dependencies: [
        .Package(url: "https://github.com/IBM-Swift/Kitura.git", majorVersion: 1, minor: 6),
        .Package(url: "https://github.com/IBM-Swift/HeliumLogger.git", majorVersion: 1, minor: 6)
    ])

dependencies에 package를 추가를 해줍니다.

 

import Kitura
import HeliumLogger

// Initialize HeliumLogger
HeliumLogger.use()

// Create a new router
let router = Router()

// Handle HTTP GET requests to /
router.get("/") {
    request, response, next in
    response.send("Hello, World!")
    next()
}

// Add an HTTP server and connect it to the router
Kitura.addHTTPServer(onPort: 8090, with: router)

// Start the Kitura runloop (this call never returns)
Kitura.run()

 

 

 

 

Comments