Ứng dụng SAAS xây dựng hệ thống API cho cổng tiếp thị liên kết salevia - Pdf 45

MỤC LỤC
MỤC LỤC ............................................................................................................ 1
DANH MỤC HÌNH .............................................................................................. 3
LỜI CẢM ƠN....................................................................................................... 4
LỜI MỞ ĐẦU....................................................................................................... 5
CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT ................................................................... 6
1.1. Dịch vụ Software as a Service (SaaS) ......................................................... 6
1.1.1. Giới thiệu SaaS .................................................................................. 6
1.1.2. Làm sao để chọn giữa SaaS và phần mềm on-premise? ...................... 6
1.1.3. SaaS có mới với người sử dụng? ........................................................ 7
1.1.4. Liệu tôi có thể tùy chỉnh phần mềm SaaS? ......................................... 8
1.1.5. Ai sở hữu dữ liệu của tôi? ................................................................... 9
1.1.6. Dữ liệu của tôi có được an toàn? ........................................................ 9
1.1.7. Điều gì sẽ xảy ra nếu nhà cung cấp dịch vụ SaaS ngừng kinh doanh?10
1.1.8. Hạn chế của SaaS là gì?.................................................................... 10
1.1.9. Đâu là sự khác biệt giữa SaaS và điện toán đám mây? ...................... 11
1.2. Giới thiệu về Application Programming Interface(API)............................ 11
1.2.1. API là gì ........................................................................................... 11
1.2.2. Ứng dụng API .................................................................................. 12
1.3. Tìm hiểu về Laravel ................................................................................. 13
1.3.1. Sự phát triển của Laravel. ................................................................. 13
1.3.2. Các điểm nhấn đặc sắc của Laravel. ................................................. 14
1.3.3. Giới thiệu về Laravel ........................................................................ 16
1.3.4. Cài đặt Laravel thông qua Composer. ............................................... 16
1.3.5. Cấu trúc Laravel ............................................................................... 18
1.3.6. Các thành phần cơ bản trong Laravel................................................ 20
1.4. Tìm hiểu về Bootstrap .............................................................................. 29
1.4.1. Giới thiệu về Bootstrap..................................................................... 29
1.4.2. Một số ưu điểm chính của Boostrap. ................................................ 30
1.4.3. Cách sử dụng Twitter Bootstrap. ...................................................... 31


Hình 1.3: MVC trong Laravel ................................................................................ 15
Hình 1.4: Cài đặt composer ................................................................................... 17
Hình 1.5: Cấu trúc thư mục Laravel ....................................................................... 18
Hình 1.6: Bootstrap trên Github ............................................................................. 30
Hình 1.7: Cấu trúc thư mục css framework boostrap.............................................. 31
Hình 1.8: Minh hóa form trong boostrap................................................................ 32
Hình 1.9: Kết quả viết form ................................................................................... 32
Hình 1.10: Kết quả bootstrap responsive ............................................................... 32
Hình 2.1: Biểu đồ UseCase quản lý tài khoản ........................................................ 39
Hình 2.2 : Biểu đồ UseCase quản lý cửa hàng ....................................................... 40
Hình 2.3 : Biểu đồ UseCase các chức năng khác.................................................... 42
Hình 2.4 : Biểu đồ trình tự chức năng đăng ký....................................................... 43
Hình 2.5 : Biểu đồ trình tự chức năng đăng nhập ................................................... 44
Hình 2.6 : Biểu đồ trình tự chức năng tạo cửa hàng ............................................... 45
Hình 2.7 : Biểu đồ trình tự thêm/xóa sản phẩm. ..................................................... 46
Hình 2.8 : Biểu đồ trình tự cấu hình cửa hàng. ....................................................... 47
Hình 3.1 : Giao diện trang chính ............................................................................ 48
Hình 3.2 : Giao diện trang quản lý cửa hàng .......................................................... 48
Hình 3.3 : Giao diện trang quản lý sản phẩm ......................................................... 49

3


LỜI CẢM ƠN
Em xin chân thành cảm ơn sự giúp đỡ nhiệt tình của giảng viên, Thạc sĩ
Nguyễn Quang Hiệp, người đã giúp đỡ em trong suốt quá trình thực hiện đồ án để
em có thể hoàn thành tốt đề tài của mình.
Em cũng xin gửi lời cảm ơn đến các thầy cô giáo, giảng viên Khoa Công
Nghệ Thông Tin – Trường Đại Học Công Nghệ Thông Tin và Truyền Thông Thái
Nguyên – Đại học Thái Nguyên và các thầy cô đã giảng dạy em trong suốt quá trình

internet đó chính là các website. Mọi thông tin trên mạng internet hầu hết được xuất
bản và cập nhật từ những website. Đây chính là nguồn tài nguyên thông tin vô cũng
lớn, quý giá đối với bất kỳ quốc gia, tổ chức hay cá nhân nào.
Chỉ trong một thời gian ngắn Laravel đã trở thành một hiện tượng kỳ lạ
giống với các sự kiện mà các bạn nhận thấy gần đây như "Flappy Bird",
"Gangnam style" làm say mê không ít các bạn trẻ. Khi mà các lập trình viên bỗng
dưng quay lưng với các framework đình đám như Zend, Cakephp, Yii và chọn
lựa Laravel Framework.
Vì vậy, cùng với những gợi ý của giảng viên Thạc sĩ Nguyễn Quang
Hiệp, em đã chọn đề tài:“Ứng dụng SAAS xây dựng hệ thống API cho cổng
tiếp thị liên kết Salevia ”.

5


CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT
1.1. Dịch vụ Software as a Service (SaaS)
1.1.1. Giới thiệu SaaS
SaaS (Software as a Service) là một dạng chuyển giao phần mềm cho
phép truy cập dữ liệu từ bất kì thiết bị nào có kết nối internet và cài đặt trình
duyệt web. Trong mô hình chạy trên web này, các nhà cung cấp phần mềm thực
hiện nhiệm vụ lưu trữ và bảo trì các máy chủ, cơ sở dữ liệu và các đoạn mã để cấu
thành ứng dụng. Đây là sự cải tiến đặc biệt so với mô hình on-premise do doanh
nghiệp không cần đầu tư vào phần cứng dung lượng lớn để lưu trữ phần mềm.
Doanh nghiệp không phải chịu các trách nhiệm kỹ thuật như khắc phục sự cố và
bảo trì hệ thống. Các nhà cung cấp dịch vụ SaaS sẽ lo việc đó.
Ngoài việc cho phép truy cập từ xa vào các phần mềm ứng dụng và dữ
liệu thông qua web, SaaS cũng khác với phần mềm on-premise về phương diện chi
phí. Phần mềm on-premise thường được mua thông qua một giấy phép vĩnh viễn,
nghĩa là doanh nghiệp sẽ sở hữu phần mềm đó. Ngoài ra, doanh nghiệp còn phải trả

John McCarthy, người đạt giải thưởng Turing với tác phẩm Trí Tuệ Nhân Tạo đã
có câu nói nổi tiếng: “Thao tác điện toán ngày nào đó có thể sẽ được tổ chức
như một dịch vụ công cộng.” Nói cách khác, khái niệm điện toán đám mây chính
là cách thức chia sẻ năng lực tính toán. Trong khi ý tưởng đã có từ trước, công
nghệ dựa trên nền tảng web yêu cầu hỗ trợ SaaS chỉ phát triển mạnh mẽ từ cuối
những năm 1990. Đó là khi các công ty như Salesforce bắt đầu cung cấp các giải
pháp cho hoạt động kinh doanh truyền thống, chẳng hạn như quản lý quan hệ
khách hàng thông qua mô hình SaaS.
Lúc đầu, các doanh nghiệp phần mềm trên thế giới đã không nhìn nhận SaaS
một cách nghiêm túc. Tuy nhiên, trong 5 năm trở lại đây, đã có sự chuyển biến
mạnh mẽ khi các doanh nghiệp SaaS chứng minh được họ có thể tăng doanh thu và
nền tảng người dùng của mình thông qua mô hình cấp giấy phép đăng ký. Đồng
thời, người mua đang ngày càng bị thu hút bởi tính tiết kiệm chi phí và sự quen
thuộc của giao diện người dùng (UI) giống trình duyệt web mà các giải pháp SaaS
cung cấp.

7


SaaS

On-premise

Chi phí cố định ban đầu Không

Có – mua một giấy phép
vĩnh viễn và thuộc sở hữu
của doanh nghiệp

Phí


Doanh nghiệp vừa và nhỏ

Doanh nghiệp lớn

Quyền sở hữu dữ liệu

Doanh nghiệp sở hữu, cần Thuộc quyền sở hữu của
quy định rõ trong ‘Cam kết doanh nghiệp hoàn toàn
mức độ dịch vụ’ (SLA)

Cập nhật phiên bản mới Nhà cung cấp dịch vụ SaaS Cập nhật theo nhu cầu của
tự động cập nhật thường doanh nghiệp, cần trả phí
xuyên, không cần trả phí

1.1.4. Liệu tôi có thể tùy chỉnh phần mềm SaaS?
Khi các ứng dụng SaaS lần đầu tiên xuất hiện, sự tuỳ biến rất hạn chế.
Mọi doanh nghiệp đều có cùng một giải pháp và phải thay đổi quy trình kinh
doanh của mình để phù hợp với phần mềm mà họ nhận được. Ngày nay, việc tùy
chỉnh hệ thống SaaS ngày càng trở nên dễ dàng và phổ biến. Có hẳn những đội
ngũ tư vấn viên chuyên tinh chỉnh các ứng dụng SaaS để phù hợp với quy trình
kinh doanh của bạn.

8


Người mua có thể tùy chỉnh giao diện người dùng của chương trình, cũng
như sửa đổi các trường dữ liệu khi cần. Một vài tính năng của quy trình kinh doanh
cũng có thể được tắt và bật theo ý muốn. Tuy nhiên, khả năng tương thích của phần
mềm SaaS vẫn không phải là điểm cần so sánh với những giải pháp on-premise. Khi

nhiên hầu hết chúng ta đều thấy thoải mái khi gửi thông tin vào các dịch vụ điện
toán đám mây.
Thật vậy, bảo mật dữ liệu không phụ thuộc việc máy chủ được đặt ngay cạnh
bạn hay ở một thành phố khác. Công bằng mà nói, các nhà cung cấp SaaS thực sự
có thể đầu tư vào bảo mật, sao lưu và bảo trì nhiều hơn bất kỳ doanh nghiệp nhỏ và
vừa nào. Vì lẽ đó, hệ thống dựa trên nền tảng web thường có mức bảo mật cao hơn
hơn hệ thống phần mềm on-premise. Ngoài ra, hầu hết các nhà cung cấp SaaS đều
trải qua quy trình bảo mật nghiêm ngặt của kiểm toán SAS70 Type II để kiểm tra
mức độ bảo mật của trung tâm dữ liệu.
1.1.7. Điều gì sẽ xảy ra nếu nhà cung cấp dịch vụ SaaS ngừng kinh doanh?
Đây là thắc mắc hợp lí trong giới phần mềm. Các nhà cung cấp liên tục ra
đời rồi phá sản do thực hiện việc hợp nhất doanh nghiệp hoặc kinh doanh thất bại.
Tuy nhiên, dữ liệu của bạn vẫn còn đó. Hầu hết các nhà cung cấp SaaS đều trả trước
cho công ty lưu trữ dữ liệu trung tâm để lưu trữ dữ liệu vĩnh viễn. Lệ phí trả trước
này dùng để bảo vệ các doanh nghiệp, đảm bảo dữ liệu của họ vẫn có thể được truy
cập trong trường hợp nhà cung cấp gặp chuyện.
Điều quan trọng ở đây là phải đảm bảo trong SLA của bạn có điều khoản quy
định rõ ràng việc bạn có thể xuất dữ liệu từ nhà cung cấp. Điều khoản này cũng nên
quy định mức độ thường xuyên và bạn có thể truy cập vào dữ liệu của mình thông
qua những loại định dạng nào. Thông thường, SLAs cũng quy định việc các nhà
cung cấp sẽ giúp di dời dữ liệu của bạn với mức phí thích hợp.
1.1.8. Hạn chế của SaaS là gì?
Nhược điểm chính của SaaS là nó phụ thuộc vào đường truyền kết nối
Internet. Trong khi nhiều người tin rằng hệ thống on-premise là đáng tin cậy hơn thì
thực tế không có hệ thống nào hoàn toàn không chịu ảnh hưởng của “downtime”.
Phần mềm on-premise dễ bị mất điện, lỗi phần cứng và một loạt các rủi ro khác.
Một số nhà cung cấp SaaS đã phát triển chức năng “offline” cho phép mọi người
tiếp tục làm việc trong trường hợp rớt mạng như một biện pháp dự phòng. Khi
internet được kết nối lại, tất cả dữ liệu sẽ được đồng bộ hóa với hệ thống.


nhau. Cũng giống như bàn phím là một thiết bị giao tiếp giữa người dùng và máy
tính, API là 1 giao tiếp phần mềm chẳng hạn như giữa chương trình và hệ điều
hành (HĐH).

11


Bộ API của từng HĐH là khác nhau, làm cho các HĐH khác nhau và
thường không tương thích với nhau. Ví dụ những phần mềm trên HĐH linux
không thể chạy được trên máy Windows bởi vì Linux và Windows có các API
hoàn toàn khác nhau.
Một trong các mục đích chính của một API là cung cấp khả năng truy xuất
đến một tập các hàm hay dùng — ví dụ, hàm để vẽ các cửa sổ hay các icon trên màn
hình. Các API, cũng như hầu hết các interfaces, là trừu tượng (abstract). Phần mềm
mà muốn cung cấp truy xuất đến chính nó thông qua các API cho sẵn, phải hiện
thực API đó. Trong nhiều tình huống, một API thường là một phần của bộ SDK,
hay software development kit. Một bộ SDK có thể bao gồm một API cũng như các
công cụ/phần cứng, vì thế hai thuật ngữ này không thay thế cho nhau được.
1.2.2. Ứng dụng API
Hiện nay nhiều người dùng mạng xã hội facebook và bạn muốn viết một ứng
dụng để đăng tin lên mạng xã hội này. Vậy làm sao để làm một ứng dụng như vậy
khi facebook là của người khác? Hiểu được nhu cầu này của các lập trình viên

12


facebook sẽ đưa ra các thư viện chứa các hàm đăng, like, share...trên trang của mình
để các lập trình viên khai thác! Đó chính là API.
Google+, Gmail, Blogger, Youtube, các ứng dụng của Windows (Windows
media player, Internet Explorer,..), nhaccuatui, zing mp3,... rất nhiều các trang web,

MVC trong Laravel
Ở phần Routes phía trên, chúng ta đã biết cách chỉ định cho Laravel ứng với
url pattern nào thì gọi đến controller, action nào.
Trong phần này, chúng ta sẽ tìm hiểu rõ hơn về controller trong Laravel,
cũng như Model và view.

14


Hình 1.3: MVC trong Laravel
 Các tính năng nổi trội của Laravel có thể kể đến :
- RESTful routing: Sử dụng Closures để hỗ trợ việc trả lời các requests.
- Blade templating (tượng tự Razor View Engine): giúp chúng ta tạo ra các
mẫu cho các view và có thể kế thừa dễ dàng.
- Eloquent ORM: đây là một ORM tuyệt vời với khả năng migration data và
làm việc tốt với MySQL, Postgres, SQL Server và SQLite
- Đáp ứng nhiều loại ứng dụng, từ ứng dụng dành cho Enterprise, hay ứng
dụng hỗ trợ RESTful, hoặc là ứng dụng web đơn giản.
- Laravel được xây dựng trên một số thành phần của Symphony, và ai lập
trình PHP cũng biết rằng Symphony là một MVC Framework tuyệt vời, và Laravel
là một Framework tuyệt vời hơn khi kế thừa từ Symphony.
- Sử dụng Composer để quản lý các gói của bên thứ ba, tượng tự như Nuget
Package mà chúng ta thường sử dụng trên Visual Studio.

15


- Red, Green, Refactor: đây là các bước khi áp dụng TDD, nghĩa là Laravel
hỗ trợ TDD và Unit Test với PHPUnit và một IoC Container để bạn có thể áp dụng
Dependency Injection và viết Unit Test dễ dàng cho ứng dụng của bạn.


vậy, trước khi sử dụng Laravel, bạn sẽ cần phải chắc chắn rằng bạn đã cài đặt trên
máy Composer của bạn.
- Link download Composer : />
Hình 1.4: Cài đặt composer

17


 Cài đặt Laravel thông qua Composer
-

Tạo 1 project Laravel bằng Composer trong terminal của bạn:
composer create-project laravel/laravel your-project-name “5.0.0” --prefer-dist

Hình 1.5: Cấu trúc thư mục Laravel
1.3.5. Cấu trúc Laravel
1.3.5.1. Các thư mục chính


app
App chứa các mô hình và điều khiển các ứng dụng. App chứa Model và

Controller cho ứng dụng của bạn.


Booststrap
Thư mục này chứa các thiết lập cơ bản để bắt đầu ứng dụng

18


storage
Thư mục lưu trữ khuôn mẫu Blade, dữ liệu của sessions, caches và các file

khác được sinh ra bởi framework


test
Thư mục này chứa tất cả các bài tests của ứng dụng



vendor
Thư mục này chứa tất cả các file của bên thứ ba (phụ thuộc và prepackages

bổ sung cho các plugin) và các tập tin mã nguồn của Frameworl laravel.
1.3.5.2. Các thư mục và tập tin qua trọng khác


app/Http
Thư mục này chưa controller và routes. Routes được đặt trong file route.php

và controller được đặt trong thư mục Controllers. Trong đây còn có 2 folder khác là
Resquests và Middleware. Resquests chứa các file resquest, Middleware chứa các
middlerware.

19




Bạn sẽ xác định hầu hết các tuyến cho ứng dụng của bạn trong tập tin

app/Http/routes.php, được nạp bởi các lớp App\Providers\RouteServiceProvider.
Hầu hết các định tuyến Laravel cơ bản chỉ đơn giản là chấp nhận một URL và a
Closure :
-

Basic GET Route (định tuyến GET cơ bản)

Route::get('/', function(){
return 'Hello World';
});
-

Other Basic Routes (các định tuyến cơ bản khác)

Route::post('foo/bar', function(){
return 'Hello World';
});
Route::put('foo/bar', function(){
//
});
Route::delete('foo/bar', function(){

20


//
});
-

-

Bạn cũng có thể chỉ định tên định tuyến cho các hành động điều
khiển:

Route::get('user/profile', [
'as' => 'profile', 'uses' => 'UserController@showProfile'
]);
-

Giờ, bạn có thể sử dụng tên của định tuyến khi tạo URL hoặc chuyển
hướng:

$url = route('profile');

21


$redirect = redirect()->route('profile');
-

Phương thức currentRouteName trả về tên của các định tuyến xử lý
các yêu cầu hiện tại:

$name = Route::currentRouteName();\
1.3.6.2. Controller
Sau khi route nhận được request thì sẽ chuyển hướng request đến cho
controller và giao cho controller này xử lý. Controller sẽ gọi tới Model để tương tác
với cơ sở dữ liệu (database) và đưa dữ liệu tới View và View sẽ nhận dữ liệu và
chuyển thành những đoạn mã HTML rồi gửi về cho Client.


theo quy tắc methodUri như sau:
-

method là post, get, ... và viết thường

-

Uri: Chữ cái đầu tiên của Uri sẽ bắt buộc viết in hoa, cứ 1 chữ in hoa
sẽ được tính là 1 đoạn uri được phân cách bởi dấu -

22


Ví dụ: action getDemoAction sẽ có method là get và Url là demo-action
- Khi làm việc với Route::resource thì controller laravel hỗ trợ 8 action:
index, create, store, show, edit, update, destroy nhưng trong controller
không nhất thiết phải tạo đủ 8 action này.
Ngoại trừ những điều trên thì action bạn có thể đặt tên tùy ý.
1.3.6.3. Eloquent ORM


Introduction (Giới thiệu)
-

Các Eloquent ORM kèm với Laravel cung cấp một ActiveRecord đẹp
mắt, đơn giản để thực hiện làm việc với cơ sở dữ liệu của bạn. Mỗi
bảng cơ sở dữ liệu có một "Model" tương ứng được sử dụng để tương
tác với các bảng đó.



Để tạo ra một bản ghi mới trong cơ sở dữ liệu từ một mô hình, chỉ
đơn giản là tạo ra một trường mô hình mới và gọi phương thức
save.

23


-

Saving A New Model (Lưu một mô hình mới)

$user = new User;
$user->name = 'John';
$user->save();
Lưu ý: Thông thường, các mô hình Eloquent của bạn sẽ có các khoá tự động
tăng. Tuy nhiên, nếu bạn muốn chỉ định các khóa riêng của bạn thì hãy thiết lập
thuộc tính incrementing trên mô hình của bạn là false.
Sau khi lưu hoặc tạo ra một mô hình mới mà sử dụng ID tự động tăng, bạn
có thể lấy lại ID bằng cách truy cập thuộc tính id của đối tượng:
$ insertedId = $ user-> id;
-

Setting The Guarded Attributes On The Model (Thiết lập các thuộc
tính bảo vệ trong mô hình)

class User extends Eloquent {
protected $guarded = array('id', 'account_id');
}
-

$affectedRows = User::where('votes', '>', 100)->update(array('status' => 2));
-

Deleting An Existing Model (Xóa một mô hình đang hiện tại)

$user = User::find(1);
$user->delete();


Timestamps (Mốc thời gian)
Theo mặc định, Eloquent sẽ duy trì các cột created_at và updated_at trên

bảng cơ sở dữ liệu của bạn tự động. Đơn giản chỉ cần thêm những cột mốc thời gian
cho bảng của bạn và Eloquent sẽ lo phần còn lại. Nếu bạn không muốn cho
Eloquent giữ các cột này hãy thêm các quyền sau cho mô hình của bạn:
-

Disabling Auto Timestamps (Vô hiệu hóa tự động lưu mốc thời gian)

class User extends Eloquent {
protected $table = 'users';
public $timestamps = false;
}
-

Providing A Custom Timestamp Format (Cung cấp một định dạng tùy
chỉnh với mốc thời gian)

class User extends Eloquent {
protected function getDateFormat(){return 'U'; }


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status