iyOmSd/Title: Vapor 5

[Vapor] Schema CRUD 데이터베이스 테이블 수정

Vapor버전 4.0을 기준으로 작성된 게시글입니다! 데이터베이스를 사용하다보면 테이블에 새로운 컬럼을 추가할 때가 있거나 삭제할 때가 있어요 그럴때 수정을 데이터베이스에서 안하고 vapor에서 Fluent를 이용해서 코드로 할 수 있다고 하네요! Create 이미 존재하는 이름이 있는 경우 에러를 발생 시킬 우려가 있어요 ignoreExisting을 이용해서 이미있다면 무시할 수 있도록 해주세요 database.schema("planets") .id() .field("name", .string, .required) .create() planets테이블을 만들껀데 id name 의 컬럼을 만들어 주는 거고 이때 name은 String타입으로 무조건 값이 필요한 속성으로 만든거에요 Field를 만들때 re..

iyOmSd/Title: Vapor 2021.03.06

[Vapor] MySQL 연동 및 데이터 CRUD (Fluent)

Vapor버전 4.0을 기준으로 작성된 게시글입니다! DB기능을 Vapor에서 Fluent라고 지칭하는것 같아요 MySQL인 경우 // dependencies에 추가 .package(url: "https://github.com/vapor/fluent.git", from: "4.0.0"), .package(url: "https://github.com/vapor/fluent-mysql-driver.git", from: "4.0.0-beta") // target에 추가 .product(name: "Fluent", package: "fluent"), .product(name: "FluentMySQLDriver", package: "fluent-mysql-driver") 위의 코드를 추가해주면 아래와 같이 되겠죠..

iyOmSd/Title: Vapor 2021.03.06

[Vapor] Validation 유효성검사

Vapor버전 4.0을 기준으로 작성된 게시글입니다! struct Hello: Content { var name: String? } extension Hello: Validatable { static func validations(_ validations: inout Validations) { validations.add("name", as: String.self, is: .count(3...)) } } ​ app.get("validation") { req -> String in try Hello.validate(query: req) let name = try req.query.decode(Hello.self).name! req.logger.info("validation test") return name..

iyOmSd/Title: Vapor 2021.03.06

[Vapor] Routing (경로 설정, Data받아오기)

Vapor버전 4.0을 기준으로 작성된 게시글입니다! HTTP Method에는 get - read post - create put - replace patch - update delete - delete 가 있어요 이러한 통신규약을 통한 통신을 만들어볼거에요 //http://127.0.0.1:8080/hello/vapor app.get("hello", "vapor") { req in return "Hello, vapor!" } //http://127.0.0.1:8080/hello/vapor app.on(.GET, "hello", "vapor") { req in return "on hello vapor" } app.get - get에 특화된 함수 app.on(HTTPMethod) - 메소드를 설정해주는 함..

iyOmSd/Title: Vapor 2021.03.06

[Vapor] 프로젝트 기본설정 및 설치

Vapor버전 4.0을 기준으로 작성된 게시글입니다! 맥북을 사용하시면 brew는 익숙할거라 생각하고 시작할게요! vapor를 다운해볼까요 brew install vapor vapor new hello -n hello 라는 이름의 프로젝트를 새로 만들어주는 명령어구요 -n은 그냥 vapor new hello만 한다면 설정을 해주기위해서 질문에 답해야하는 모든 것들을 자동으로 no로 설정하는거에요 프로젝트 기본구조가 이렇게 있을거에요 configure.swift에 route, database, provider같은 서비스를 등록해주고 routes.swift에 경로를 등록해줘요 자세한건 문서를 참고하세요! docs.vapor.codes/4.0/folder-structure/ 프로그래밍의 시작은 Hello Wo..

iyOmSd/Title: Vapor 2021.03.06