Viblo Learning
0

Server Side Swift with Perfect: Getting Started

About Perfect

Perfect is a complete and powerful toolbox, framework, and application server for Linux and macOS. It provides everything a Swift engineer needs for developing lightweight, maintainable, and scalable apps and other REST services entirely in the Swift programming language for both client-facing and server-side applications.

Perfect là 1 bộ framework hoàn chỉnh, mạnh mẽ làm web application cho server Linux hoặc macOS bằng Swift. Nó cung cấp tất cả mọi thứ mà 1 lập trình viên Swift cần để phát triển, bảo trì và mở rộng app cùng với REST services bằng ngôn ngữ Swift cho cả phía Client-facing và Server-side applications

Do it

Bài viết này sẽ cung cấp cho các bạn những thông tin cần thiết để có thể chạy Perfect và tạo ứng dụng đầu tiên của mình.

Prerequisites (Điều kiện cần có)

Swift 4

Tất nhiên là cần Swift 4 rồi, cái này code bằng Swift mà 😄 Nếu bạn dùng macOS và đã cài XCode 9.x thì đã có sắn Swift 4 rồi nhé, còn nếu bạn dùng Linux thì có thể vào trang Swift.org để tải nhé! Để kiểm tra xem máy bạn dđã cài swift chưa thì mở Terminal lên và chạy lệnh sau:

swift --version

Nếu máy bạn đã có Swift thì nó sẽ hiện message tương tự thế này:

Apple Swift version 4.0 (swiftlang-900.0.65 clang-900.0.37)
Target: x86_64-apple-macosx10.9

Hãy chắc chắn rằng bạn đang chạy với Swift 4 trở lên nhé, tại framework của họ nâng lên Swift 4 rồi

OpenSSL 1.0.2+

Nếu bạn dùng macOS thì nó đã được tích hợp sẵn trong máy rồi nhé Nếu bạn dùng Linux thì cài

sudo apt-get install openssl libssl-dev uuid-dev

Getting Started with Perfect

Build Starter Project

Chạy những lệnh dưới đây, máy bạn sẽ tạo project mới và run chúng trên locahost tại cổng 8181

git clone https://github.com/PerfectlySoft/PerfectTemplate.git
cd PerfectTemplate
swift build
.build/debug/PerfectTemplate

Bạn sẽ thấy console in ra:

[INFO] Starting HTTP server localhost on 0.0.0.0:8181

Bây giờ server của bạn đang chạy rồi nhé. Bạn có thể mở trình duyệt và truy cập trang: http://localhost:8181/ để xem thành quả nhé.

Đây là link source code cho Template của perfect: https://github.com/PerfectlySoft/PerfectTemplate

Xcode

Nếu bạn quen dùng xcode để code và debug thì bạn có thể cài: Swift Package Manager (SPM) Khi đó bạn chỉ cần chạy:

swift package generate-xcodeproj

Nó sẽ tự động tạo file "PerfectTemplate.xcodeproj". Bây giờ bạn có thể mở nó bằng XCode, run và debug bình thường trên console của xcode nhé

API (tạo API)

Để hiểu rõ hơn về cách tạo API của Perfect bạn có thể truy cập vào trang sau để xem thông tin chi tiết: https://perfect.org/docs/api.html

  • Để lấy header của request từ client:
if let acceptEncoding = request.header(.acceptEncoding) {
    ...
}
  • Để lấy param của request từ client:
 if let foo = request.param(name: "foo") {
    ...
}
if let foo = request.param(name: "foo", defaultValue: "default foo") {
    ...
}
let foos: [String] = request.params(named: "foo")
  • Để lấy current path của request: let path = request.path

  • Để trả JSON về cho client:

response.setHeader(.contentType, value: "application/json")
let d: [String:Any] = ["a":1, "b":0.1, "c": true, "d":[2, 4, 5, 7, 8]]
 
do {
    try response.setBody(json: d)
} catch {
    //...
}
response.completed()

Kết luận:

Server side Swift với Perfect rất dễ sử dụng, chỉ cần với vài thao tác đơn giản là bạn có thể start 1 project được rồi.

Bonus: với những bạn thật sự quan tâm thì có thể tham khảo những project demo sau nhé: có đẩy đủ cả phần kết nối với database, xử lý database, có cả xử lý app real time luôn á 😉 https://github.com/PerfectExamples

Cám ơn các bạn đã đọc bài, nếu có thắc mắc hoặc gặp vấn đề trong quá trình config các bạn có thể comment xuống phía dưới bài, mình sẽ trả lời.

Tài liệu tham khảo


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.