เนื่องจากต้องการพัฒนา Application ด้วยภาษา Kotlin
ทั้งในฝั่ง Android และ Server (REST API)
ดังนั้นจึงอยากรู้ว่า ในฝั่ง Server จะพัฒนาได้อย่างไร
และง่ายเพียงใด
มาเริ่มกันเลยดีกว่า
ปล. Kotlin มันทำงานบน JVM ดังนั้นอะไรที่ทำงานบน JVM ก็ทำงานด้วยกันได้ปกติในการสร้าง REST API ที่ใช้เป็นประจำ ประกอบไปด้วย
- Servlet 3
- Spark Java
- Spring Boot
- Drop Wizard
- IntelliJ IDE
- Gradle
ตามธรรมเนียมต้องเริ่มด้วยการสร้าง HELLO WORLD API กัน ซึ่งทำงานเหมือนกันหมด1. Kotlin with Servlet 3.0 เขียน Servlet กันแบบธรรมดานี่เอง ง่ายมาก ๆ [gist id="64508ca4003af86f9b5afad7bc4a8049" file="HelloController.kt"] 2. Kotlin with Spark Java เป็น framework ที่ได้รับแรงบันดาลใจมาจาก Sinatra ทำให้เราสามารถสร้าง Routing ได้ง่ายมาก ๆ [gist id="64508ca4003af86f9b5afad7bc4a8049" file="HelloSpark.kt"] 3. Kotlin with Spring Boot ก็จะเยอะตามระเบียบ นั่นคือต้องมีไฟล์ Application เป็นหลัก ส่วน Rest Controller ก็เป็น class ธรรมดาเหมือนเดิม แต่เขียนสั้นกว่าเดิม [gist id="64508ca4003af86f9b5afad7bc4a8049" file="HelloSpringBoot.kt"] 4. Kotlin with DropWizard ต้องทำการ config และสร้างไฟล์เยอะหน่อย แต่ส่วนตัวชอบโครงสร้าง และ แนวคิดของ DropWizard [gist id="64508ca4003af86f9b5afad7bc4a8049" file="HelloDropWizard.kt"] เมื่อลองไปค้นหาเพิ่มเติมก็เจอ wasabi และ kara อีก ซึ่งพัฒนาด้วยภาษา Kotlin เลย ดังนั้นจึงลองนำมาเล่นสักตัว คือ wasabi เนื่องจาก kara สร้างมาสำหรับพัฒนา web application มากกว่า API นั่นเอง [gist id="64508ca4003af86f9b5afad7bc4a8049" file="HelloWasabi.kt"] โดยสรุปจากทั้ง 5 library พบว่า ถ้าเขียนด้วย Kotlin มันก็ไม่ได้ยากอะไรมากนัก เพียงแค่เปลี่ยนรูปแบบการเขียนให้สั้น และ สวยขึ้น ส่วนจะเลือกอะไรนั้น ผมคิดว่าอยู่ที่ตัวคนใช้แล้วล่ะ ว่ารัก ชอบ อะไรมากกว่ากัน ตัวอย่าง source code ทั้งหมดอยู่ที่ Github :: Up1 :: Demo Kotlin REST API