Tải bản đầy đủ (.pdf) (20 trang)

Báo cáo thực tập lập trình WEB API với SPRING BOOT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (643.31 KB, 20 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
--------------------------------

BÁO CÁO THỰC TẬP

LẬP TRÌNH WEB API VỚI SPRING BOOT

Cơng ty thực tập

: GUMI Việt Nam

Người phụ trách

: Nguyễn Thành Đức

Thực tập sinh

: Trần Minh Nhựt

TP. Hồ Chí Minh, tháng 7 năm 2020


LỜI MỞ ĐẦU
Công nghệ thông tin đã tạo nên một xã hội tồn cầu, nơi mà mọi người có thể tương
tác và liên lạc với nhau một cách nhanh chóng và hiệu quả. Trong hơn 15 năm qua, lĩnh
vực công nghệ thông tin Việt Nam đã đạt được nhiều thành tựu quan trọng.
Ngày nay, công nghệ thông tin dần trở thành ngành kinh tế mũi nhọn của đất nước,
có tỉ lệ đóng góp cho tăng trưởng GDP đất nước ngày càng cao. Cơng nghệ thơng tin giờ
đây đã có mặt ở nhiều phương diện trong cuộc sống hàng ngày của chúng ta, từ thương
mại đến giải trí và thậm chí cả văn hóa, xã hội và giáo dục…


Cơng nghệ thơng tin giữ một vai quan trọng tại các quốc gia trên thế giới, đặc biệt tại
Việt Nam, công nghệ thông tin được xem là nền tảng vững chắc phục vụ cho tiến trình
phát triển đất nước bền vững.
Sau thời gian học tập tại Trường Đại Học Công Nghệ Thông Tin em đã được trang bị
những kiến thức lý thuyết rất tốt. Trong thời gian thực tập thực tế, em đã có cơ hội q báu
được thực tập tại Cơng ty Cổ phần Gumi Việt Nam, dưới sự hướng dẫn tận tình của Quý
Anh Chị đồng nghiệp nơi đây, em đạ thực hiện bài báo cáo của mình với nội dung dưới
đây.


LỜI CẢM ƠN
Để hoàn thành chuyên đề báo cáo thực tập này trước hết em xin gửi đến quý thầy,cô
giáo trong khoa Công nghệ Phần mềm trường Đại học Công Nghệ Thông Tin lời cảm ơn
chân thành.
Đặc biệt, em xin gởi đến anh Nguyễn Thành Đức, người đã tận tình hướng dẫn, giúp
đỡ em hoàn thành chuyên đề báo cáo thực tập này lời cảm ơn sâu sắc nhất.
Em xin chân thành cảm ơn Ban Lãnh Đạo, các phòng ban của Công ty Cổ phần Gumi
Việt Nam, đã tạo điều kiện thuận lợi cho em được tìm hiểu thực tiễn trong suốt quá trình
thực tập tại công ty.
Cuối cùng em xin cảm ơn các anh chị phòng Nghiên cứu, phát triển của Công ty Cổ
phần Gumi Việt Nams đã giúp đỡ em hoàn thành tốt chuyên đề thực tập này.
Đồng thời nhà trường đã tạo cho em có cơ hội được thưc tập nơi mà em yêu thích,
cho em bước ra đời sống thực tế để áp dụng những kiến thức mà các thầy cô giáo đã giảng
dạy. Qua công việc thực tập này em nhận ra nhiều điều mới mẻ và bổ ích để giúp ích cho
cơng việc sau này của bản thân.
Vì kiến thức bản thân còn hạn chế, trong quá trình thực tập, em không tránh khỏi
những sai sót, kính mong nhận được những ý kiến đóng góp từ thầy cũng như q cơng ty.

2|Page



NHẬN XÉT CỦA KHOA
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………

3|Page


MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU VỀ CÔNG TY CỔ PHẦN GUMI VIỆT NAM.......................... 1
1.1. Quá trình hình thành và phát triển của công ty ........................................................... 1
1.2. Tầm nhìn, sứ mệnh .................................................................................................... 1

1.3. Chức năng hoạt động và kinh doanh của Gumi Việt Nam .......................................... 2
CHƯƠNG 2: NỘI DUNG THỰC TẬP ................................................................................ 2
2.1. Lịch làm việc tại nơi thực tập .................................................................................... 2
2.2. Kết quả đạt được qua kỳ thực tập............................................................................... 3
2.2.1. Những kiến thức lý thuyết đã được củng cố ........................................................ 3
2.2.2. Những kỹ năng thực hành đã được học thêm và những kinh nghiệm thực tiễn đã
tích lũy được ................................................................................................................ 3
CHƯƠNG 3: NỘI DUNG THỰC TẬP ................................................................................ 4
3.1. Sơ lược về Spring Boot: ............................................................................................ 4
3.1.1. Mơ hình Spring MVC ......................................................................................... 4
3.1.2. Giới thiệu về Spring Boot ................................................................................... 5
3.2. Nội dung công việc.................................................................................................... 5
3.2.1. Các phần mềm sử dụng ....................................................................................... 6
3.2.2. Thiết kế spring boot application đơn giản ........................................................... 6
3.2.3. Java Persistence API (JPA) ................................................................................. 9
3.2.4. Katharsis JSON API ......................................................................................... 11
3.2.5. Testing với Junit và Mockito ............................................................................ 14
TỔNG KẾT ....................................................................................................................... 15

4|Page


CHƯƠNG 1: GIỚI THIỆU VỀ CÔNG TY CỔ PHẦN GUMI VIỆT NAM
1.1. Quá trình hình thành và phát triển của cơng ty
-

Tên Cơng ty: CƠNG TY CỔ PHẦN GUMI VIỆT NAM

-


Loại hình hoạt động: Công ty Cổ Phần

-

Mã số thuế: 0312512116

-

Địa chỉ: Số 39, Đường Nguyễn Thị Diệu, Phường 6, Quận 3, Thành phố
Hồ Chí Minh

-

Ngày cấp giấy phép: 14/10/2013

Cơng ty Gumi Việt Nam là công ty chuyên về thiết kế web, lập trình và phát triển
các ứng dụng dành cho smart phone. Cùng với liên kết chặt chẽ giữa công ty mẹ gumi
(trụ sở Tokyo) và gumi Việt Nam ( trụ sở Hồ Chí Minh) chắc chắn sẽ tạo được những
sản phẩm tốt nhất đến cho khách hàng trong nước và ngoài nước. Cùng với đội ngũ
nhân viên Nhật Bản và Việt Nam, công ty luôn sẵn sàng chấp nhận mọi “thách thức”
để phấn đấu trở thành công ty IT hàng đầu tại Việt Nam..

1.2. Tầm nhìn, sứ mệnh
Tầm nhìn: Công ty hàng đầu trong lĩnh vực thiết kế web, lập trình và phát triển
các ứng dụng dành cho smart phone.
Sứ mệnh: Trong nền kinh tế hiện nay, việc kinh doanh khơng chỉ giới hạn ở trong
nước mà cịn mở rộng ở nước ngoài, đưa nền kinh tế dẫn đến sự thành công. Tuy
nhiên, sự phát triển của các thiết bị thông minh và mạng lưới, những hạn chế về
khoảng cách đều được loại bỏ, cơ hội mở rộng kinh doanh là qua biên giới cũng đã
tăng lên. Cùng với những ý tưởng công nghệ tiên tiến, công ty Gumi Việt Nam xin

được đóng góp cho hai nước Việt Nam và Nhật Bản càng nhiều càng tốt.

1|Page


1.3. Chức năng hoạt động và kinh doanh của Gumi Việt Nam
• Phát triển phần mềm
-

Phát triển dịch vụ phần mềm các ngôn ngữ chủ yếu : .NET, Java, C/C++, php,
Python, Ruby, iOS, Android,…

-

Gia công phần mềm cho các công ty về các lĩnh vực như : network, tài chính, ecommerce,…
• Kiểm thử phần mềm

-

Kiểm tra tồn bộ hệ thống .

-

Kiểm soát chất lượng.

-

Giải pháp kiểm thử phần mềm.

-


Tự động hóa testing.
• Thiết kế giao diện(visual design)

-

Thiết kế apps đa nền tảng (web, mobile, desktop).
• Dịch vụ quản trị hệ thống IT:

-

Gumi Việt Nam cung cấp dịch vụ như: Cloud and server, IT security,
Application packaging.
CHƯƠNG 2: NỘI DUNG THỰC TẬP

2.1. Lịch làm việc tại nơi thực tập

Thứ 2, thứ 4, thứ 5, thứ 6
(từ 01/05/2019 đến 30/12/2019)
Thứ 7, Chủ nhật.

Sáng

Chiều

9h00 – 12h00

13h30 – 17h30

Nghỉ hàng tuần


Nhiệm vụ chính được giao: Tìm hiểu về Spring MVC và phát triển Web API.

2|Page


2.2. Kết quả đạt được qua kỳ thực tập
2.2.1. Những kiến thức lý thuyết đã được củng cố
Những kiến thức vận dụng: kỹ năng lập trình, hướng đối tượng, cơ sở dữ liệu.
Củng cố kỹ năng lập trình, quy trình thiết kế phần mềm.
2.2.2. Những kỹ năng thực hành đã được học thêm và những kinh nghiệm thực
tiễn đã tích lũy được
-

Tìm hiểu về mơ hình MVC và Spring Framework, cách vận hành của phần
back-end trong một website.

-

Củng cố kiến thức về Java Web.

-

Có được các kỹ năng lập kết hoạch và tổ chức công việc hiệu quả

-

Khả năng học hỏi tìm tòi, nghiên cứu vấn đề mới.

-


Khả năng làm việc nhóm.

-

Trau dồi kỹ năng giao tiếp, kỹ năng Tiếng Anh.

-

Có một thói quen làm việc tốt.

3|Page


CHƯƠNG 3: NỘI DUNG THỰC TẬP

3.1. Sơ lược về Spring Boot:
3.1.1. Mơ hình Spring MVC
Bao gồm 3 thành phần chính :
- Controller : Giữ nhiệm vụ điều hướng các yêu cầu từ người dùng, chứa logic
doanh nghiệp, đảm nhận yêu cầu từ phía client, lưu trữ dữ liệu vào database, web
service,…
- Model : Chứa cái nghiệp vụ logic, phương thức xử lý, truy xuất Database, hàm
xử lý, Class,…
- View : hiển thị thông tin tương tác với người dùng, là nơi tập hợp các form
hoặc file HTML, CSS, templates ….

BROWSER

Database

4

MODEL
1
2 HTTPRESPONSE

HTTP
5

CONTROLLER

REQUEST
3

Hình 1.1: Mơ hình Spring MVC

4|Page

VIEW


3.1.2. Giới thiệu về Spring Boot
Spring boot là Project nằm trên tầng IO Execution của Spring MVC Framework.
Spring boot được tạo ra làm dễ dàng hơn cho việc lập trình và phát triển ứng
dụng. Spring boot hỗ trợ các bộ chứa nhúng, cho phép các ứng dụng web có thể chạy
độc lập mà không cần triển khai ở các Web Server.
Như vậy Spring Boot bao gồm Spring Framework (Spring MVC) và Embedded
HTTP server ( Tomcat, serverlet,..) . Lợi ích của Spring Boot là ta không cần phải cấu
hình XML, giảm thiểu thời gian và tăng năng xuất.


3.2. Nội dung công việc

Thời gian

Công việc

1/5 – 20/5/2019

Review Java Core

21/5- 11/7/2019

Review Java OOP

10/7 – 14/8/2018

Design Robot Movement game in OOP

15/8 – 19/9/2019

Đọc tài liệu về Spring Boot và cài đặt
Maven và config các dependency.

20/9 – 17/11/2019

Cài đặt MySQL, Tìm hiểu về Java
Persistence API, Katharsis JSON API.

18/11 – 19/12/2019


Đọc tài liệu làm quen với testing trên Junit
và Mockito.

20/12 – 30/12/2019

5|Page

Thiết kế web API .


3.2.1. Các phần mềm sử dụng
-

JRE 8, JDK 8.

-

Intellij idea: Java development.

-

Maven dependency.

-

MySQL Workbench.

-

Postman for API development.


-

Git version control.

3.2.2. Thiết kế spring boot application đơn giản
• Tạo một maven project:
mvn

archetype:generate

-DgroupId=com.tma

-DartifactId=training-lab-api

DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

• Thư mục chứa application:

Hình 1.1: Cấu trúc của project Maven

6|Page

-


POM file configuration là trung tâm của Maven project. Là một file đơn lẻ chứa
các thơng tin cần để build

Hình 2.2: Cấu trúc của POM file

• Thêm Spring boot vào project:
Thêm dependency vào POM.xml

<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>

• Bổ sung các @anotation vào Application class:
import

org.springframework.boot.SpringApplication;

import

org.springframework.boot.autoconfigure.SpringBootApplication;

7|Page


Tạo một HelloController Class là controller dùng để test app.

Hình 2.3: HelloControler Class
• Sau khi run app, truy cập vào localhost:8080/api/ ta được:

Hình 2.4: Kết quả sau khi connect tới localhost

8|Page



3.2.3. Java Persistence API (JPA)
• Maven:
Maven là một chương trình quản lý dự án cho phép developers xây dựng và quản lý bất
kỳ dự án liên quan đến Java. Cung cấp các công cụ hỗ trợ dependencies (thư viện sử
dụng trong dự án).
• Sử dụng Spring JPA để lưu trữ và truy xuất dữ liệu trong relational database,
JPA dependency:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

• Cấu hình MySQL:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

• MySQL query:
CREATE DATABASE

IF NOT EXISTS `tlab_db`;

USE `tlab_db`;

DROP TABLE IF EXISTS `subject`;
CREATE TABLE `subject` (
`subject_id` bigint(20) NOT NULL AUTO_INCREMENT,
`description` varchar(45) NOT NULL,
PRIMARY KEY (`subject_id`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

LOCK TABLES `subject` WRITE;
INSERT INTO `subject` VALUES (1,'Spring'),(2,'DOTNET');

9|Page


UNLOCK TABLES;

Tạo một Subject class trong model package, tiến hành mapping với database:

Hình 2.5: Kết nối java class với database
• Thêm vào HelloController class để test SubjectJpaRepository
@Autowired
private

SubjectJpaRepository

jpaRepository;

@RequestMapping("/")
public

String

index()

System.out.println("START
List<Subject>


10 | P a g e

subjectList

testing
=

{
jpa");

jpaRepository.findAll();


for

(Subject

subject

System.out.println("ID

=

System.out.println("Description

:
"
=


subjectList)
+

"

+

{

subject.getSubjectId());
subject.getDescription());

}
System.out.println("END
return

"Greetings

testing
from

jpa");
Spring

Boot!";

}

• Truy cập vào server ta được:


3.2.4. Katharsis JSON API
• Tạo repository và thêm các class SubjectRepository và SubjectRepositoryImpl :

Hình 2.6: Tạo thêm các repository
11 | P a g e


• Thêm KatharsisConfigV3 ở Application class
@SpringBootApplication
@Import({

KatharsisConfigV3.class

public

class

public

static

Application
void

main(String[]

SpringApplication.run(Application.class,
}
}


• Test các chức năng củaRESTfulAPItrên Postman:
GET request: http://localhost:9090/api/subjects.

Hình 2.7: GET request

12 | P a g e

})
{
args)

{
args);


• POST request: tạo mới một subject và thông tin của subject đó sẽ được lưu vào
trong database.

Hình 2.8: POST request
• PATCH request : chỉnh sửa thơng tin của subject có id = 3.

Hình 2.9: PATCH request
13 | P a g e


3.2.5. Testing với Junit và Mockito
Junit là một framework mã nguồn mở dùng để tạo ra các scrip testing tự động cho
Java.
Thêm @Test annotation vào phương thức test, tiếp theo tạo một object bên dưới
phương thức test để gọi method và định nghĩa các kết quả mong muốn, sau đó gọi

phương thức cần test để so sanh kết quả thực tế so với kết quả mong muốn.

14 | P a g e


TỔNG KẾT
Với sự chỉ bảo và hướng dẫn của anh Nguyễn Thành Đức cùng với sự nỗ lực làm
việc, đề tài của em đã được hoàn thành. Với những thuận lợi và khó khăn trong q
trình làm việc, cơng việc về cơ bản đã hồn thành nhưng khơng tránh phần sai sót. Bên
cạnh đó xin chân thành cảm ơn cơng ty Cổ phần Gumi Việt Nam và toàn thể các anh
chị trong công ty đã hỗ trợ giúp đỡ em hết mình trong công việc và sinh hoạt.

15 | P a g e



×