Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 75 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
75
Dung lượng
2,44 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN NGUYỄN TRỌNG PHỔ NGHIÊN CỨU RESTFUL API VÀ ỨNG DỤNG XÂY DỰNG HỆ THỐNG TOPUP LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN HÀ NỘI - 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN NGUYỄN TRỌNG PHỔ NGHIÊN CỨU RESTFUL API VÀ ỨNG DỤNG XÂY DỰNG HỆ THỐNG TOPUP Ngành: Công nghệ thông tin Chuyên ngành: Quản lý hệ thống thông tin Mã số: Chuyên ngành đào tạo thí điểm LUẬN VĂN THẠC SĨ CƠNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TS Nguyễn Đình Hóa HÀ NỘI - 2016 LỜI CAM ĐOAN Tơi xin cam đoan Luận văn cơng trình nghiên cứu cá nhân Các liệu, kết nêu Luận văn xây dựng dựa sở nghiên cứu lý thuyết, khảo sát tình hình thực tiễn, hướng dẫn thầy cô giáo, đóng góp anh chị khóa Tơi xin cam đoan điều tơi nói thật, sai sót tơi xin chịu hoàn toàn trách nhiệm trước Hội đồng T c giả u n v n Nguyễn Trọng Phổ i LỜI CẢM ƠN Để hoàn thành tốt Luận văn tốt nghiệp với đề tài “Nghiên cứu RESTful API ứng dụng xây dựng hệ thống TOPUP” nỗ lực, cố gắng thân tôi, thiếu giúp đỡ, hướng dẫn thầy cô Qua đây, xin gửi lời cảm ơn chân thành đến Thầy giáo PGS.TS Nguyễn Đình Hóa tận tình hướng dẫn, giúp đỡ tơi có định hướng hồn thành tốt đề tài nghiên cứu Tơi xin gửi lời cảm ơn tới gia đình bạn bè quan tâm, động viên, giúp đỡ tạo điều kiện cho tơi để tơi có điều kiện tốt trình thực đề tài Mặc dù có nhiều cố gắng hạn chế thời gian kiến thức, trình độ cá nhân nên đề tài nghiên cứu tránh khỏi thiếu sót Vì vậy, tơi mong nhận góp ý, bảo thầy giáo để đề tài nghiên cứu đầy đủ, hồn thiện ứng dụng vào thực tế hiệu Tôi xin chân thành cảm ơn! T c giả u n v n Nguyễn Trọng Phổ ii MỤC LỤC PHẦN MỞ ĐẦU CHƢƠNG 1: DỊCH VỤ WEB VÀ REST 1.1 Tổng quan dịch vụ web 1.2 Kiến trúc c c thành phần dịch vụ web 1.2.1 XML 1.2.2 SOAP 1.2.3 WSDL 1.2.4 UDDI 1.3 XML-PRC 1.4 REST 1.5 Nguyên tắc REST 1.5.1 Tài nguyên 1.5.2 Khả đánh địa .10 1.5.3 Phi trạng thái .11 1.5.4 Kết nối 11 1.5.5 Giao diện đồng 12 1.5.6 Khả lưu cache 13 1.6 Tại ựa chọn REST .14 1.7 Dịch vụ web kiểu REST 15 CHƢƠNG 2: BẢO MẬT VỚI DỊCH VỤ WEB KIỂU REST .16 2.1 Giới thiệu 16 2.2 Kiểu kiến trúc REST phù hợp với đệm web 16 2.3 Khóa mã nội dung đối xứng 17 2.4 Bàn giải ph p 18 2.5 Kết u n .19 2.5.1 Bảo mật với JSON Web Token 19 2.5.2 Bảo mật với OAuth2 21 2.5.3 Lựa chọn giải pháp 23 CHƢƠNG 3: KHUNG LÀM VIỆC LARAVEL 25 3.1 Giới thiệu 25 3.2 Lịch sử ph t triển Larave 25 3.3 Cấu trúc Larave .26 3.3.1 Route 27 3.3.2 Controller 30 3.3.3 Eloquent ORM 32 iii 3.4 Bảo m t với Larave 34 3.4.1 Giả mạo yêu cầu (Cross-site Request Forgery - CSRF) 35 3.4.2 Kịch lệnh ( Cross-site Scripting (XSS) .35 3.4.3 Nhúng câu lệnh SQL ( SQL Injection) 35 3.4.4 Phép gán ạt (Mass Assignment) 36 3.4.5 Cookies 36 3.4.6 HTTPS 37 CHƢƠNG 4: THIẾT KẾ VÀ THỰC HIỆN HỆ THỐNG API TOPUP 38 4.1 Giới thiệu hệ thống TOPUP 38 4.2 Nguyên tắc hoạt động .39 4.3 Tổng quan hệ thống VTA TOPUP API .39 4.3.1 Tổng quan APIs 39 4.3.2 Kết nối 39 4.3.3 Luồng hoạt động TOPUP 40 4.3.4 Giao thức TCP/IP .41 4.3.5 Giao thức HTTP 41 4.3.6 Bảo mật xác thực 42 4.4 Áp dụng kiến trúc REST 44 4.4.1 Tài nguyên 44 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 Đánh địa 46 Phi trạng thái 46 Liên kết với .47 Giao diện đồng 47 Khả cache 48 4.5 Thiết kế chi tiết c c API 49 4.5.1 Phương thức “Ping” 49 4.5.2 Phương thức “Check Wallet” 50 4.5.3 Phương thức “Service Info” .52 4.5.4 Phương thức “Topup” 55 4.5.5 Phương thức “Trans History” 58 4.5.6 Danh sách mã lỗi 60 4.6 Thử nghiệm đ nh gi kết .61 4.6.1 Giới thiệu .61 4.6.2 Một số đoạn code mô tả thực thi API 62 4.6.3 Dùng thử API .62 DANH MỤC TÀI LIỆU THAM KHẢO 67 iv DANH MỤC TỪ VIẾT TẮT STT Từ viết tắt Viết đầy đủ API Application Programming Interface REST Representational State Transfer WSDL Web Service Description Language SOAP Simple Object Access Protocol HTTP Hypertext Transfer Protocol XML EXtensible Markup Language UDDI Universal Description, Discovery Integration RPC Remote Procedure Call URI Uniform resource identifier 10 JSON JavaScript Object Notation 11 ICP 12 HTCP 13 TLS Transport Layer Security 14 JWT JSON Web Token 15 HMAC 16 SHA 17 HTTPS 18 NSD Người sử dụng 19 CSDL Cơ sở liệu 20 SQL Internet Cache Protocol Hypertext Caching Protocol Hashing Message Authentication Codes Secure Hash Algorithm Hyper Text Transport Protocol Secure Structured Query Language v DANH MỤC HÌNH, BẢNG, BIỂU DANH MỤC HÌNH Hình 1.1 Mơ tả kiến trúc dịch vụ web Hình 1.2 Mơ tả cấu trúc thông điệp SOAP .5 Hình 1.3 Cấu trúc WSDL Hình 1.4 Các thành phần WSDL .6 Hình 1.5 Hai URI trỏ đến tài nguyên 10 Hình 1.6 Minh họa tìm kiếm đồ Google Maps .11 Hình 1.7 Minh họa đại diện liên kết 12 Hình 2.1 Sơ đồ luồng hoạt động Oauth2 .23 Hình 3.1 Tỷ lệ đánh giá khung làm việc PHP .25 Hình 3.2 Ánh xạ route action 32 Hình 4.1 Sơ đồ tổng quan hệ thống VTA Topup 38 Hình 4.2 Kết nối dịch vụ VTA Topup 40 Hình 4.3 Luồng hoạt động hệ thống VTA Topup 41 Hình 4.4 Lược đồ API Ping 50 Hình 4.5 Lược đồ check wallet 52 Hình 4.6 Lược đồ lấy thông tin dịch vụ 55 Hình 4.7 Lược đồ hành động TOPUP .58 Hình 4.8 Lược đồ hành động lấy lịch sử giao dịch 60 Hình 4.9 Lấy thơng tin truyền vào Header 62 Hình 4.10 Phương thức xác thực tạo chữ ký 62 Hình 4.11 Hình ảnh tạo mảng request_header .63 Hình 4.12 Hình ảnh mơ tả việc gọi api ping 63 Hình 4.13 Hình ảnh giao diện dùng thử API Ping 63 Hình 4.14 Hình ảnh giao diện dùng thử API Check Wallet 64 Hình 4.15 Hình ảnh giao diện dùng thử API Service Info 64 Hình 4.16 Hình ảnh giao diện dùng thử API Topup .65 Hình 4.17 Hình ảnh giao diện dùng thử API Trans History 65 vi PHẦN MỞ ĐẦU Cơ sở khoa học tính cấp thiết đề tài Ngày hệ thống Internet ngày phát triển, phần mềm sử dụng hệ thống internet ngày nhiều Các phần mềm đa dạng dẫn đến có nhiều yêu cầu cần đáp ứng Một số phần mềm địi hỏi lượng thơng tin lớn, liệu lớn… khơng thể lưu liệu thiết bị sử dụng, số loại yêu cầu cập nhật realtime (theo thời gian thực) để đảm bảo đắn thơng tin (chứng khốn, tiền tệ ), số phần mềm đòi hỏi xử lý nhanh mạnh, mà thiết bị lại thực cấu hình khơng đủ Thơng thường, để sử dụng dịch vụ người dùng cần dùng trình duyệt, truy cập website thực Nhưng người dùng sử dụng giao diện mà nhà cung cấp thiết kết sẵn nhiên chúng không đáp ứng mong muốn người dùng Để giải vấn đề cần xây dựng ứng dụng có tính dịch vụ giao diện thân thiện Vì cần phải sử dụng dịch vụ riêng biệt để tương tác với hệ thống cung cấp dịch vụ nói Một hệ thống gọi API Để giải vấn đề tác giả đề xuất luận văn “Nghiên cứu RESTful API ứng dụng xây dựng hệ thống TOPUP” nhằm nghiên cứu xây dựng hệ thống API cung cấp cho khách hàng phương án nạp tiền trực tiếp vào tài khoản thuê bao trả trước, trả sau, tài khoản game, học trực tuyến,… thao tác đơn giản điện thoại, máy tính thiết bị khác có kết có kết nối internet, GPRS, Wifi 3G Mục tiêu nhiệm vụ đề tài - Hiểu nguyên tắc REST - Hiểu loại liệu điều khiển Tiến hành cài đặt API RESTful theo phương pháp hệ thống dựa web - Đưa phương pháp xây dựng cách thức truy cập liệu sử dụng API REST - Tiến hành cài đặt API RESTful theo phương pháp - Cho thấy API vừa cài đặt dùng chung cho người máy Ý nghĩa khoa học đề tài - Nghiên cứu giải pháp xây dựng API, so sánh đưa ưu nhược điểm giải pháp qua đưa giải pháp phù hợp để xây dựng API - Áp dụng kết nghiên cứu để xây dựng, cài đặt thử nghiệm hệ thống API TopUp gồm chức năng: kiểm tra số dư, lấy thông tin dịch vụ, thực TopUp, lấy lịch sử giao dịch Phƣơng ph p nghiên cứu - Thu thập, phân tích tài liệu thơng tin liên quan đề đề tài - Tìm hiểu giải pháp việc xây dựng API số Website nước - Kết hợp nghiên cứu có trước tác giả ngồi nước với bảo, góp ý thầy hướng dẫn để hoàn thành nội dung nghiên cứu Phạm vi nghiên cứu - Nghiên cứu số giải pháp xây dựng API - Do có hạn chế định sở vật chất điều kiện tiếp cận thực tế với lĩnh vực viễn thông nên việc cài đặt ứng dụng chủ yếu mang tính thử nghiệm C c kết nghiên dự kiến cần đạt đƣợc - Nghiên cứu số giải pháp xây dựng API, quy trình thực TopUp - Cài đặt thử nghiệm chức TopUp trực tuyến thông qua môi trường web Bố cục u n v n Phần nội dung luận văn bố cục thành chương sau: Chương 1: Dịch vụ web REST Giới thiệu chung dịch vụ web, kiến trúc thành phần dịch vụ web XML, SOAP, WSDL UDDI đồng thời giới thiệu REST, mô tả REST phù hợp với tảng với dịch vụ web, đưa lý chọn REST để phát triển dịch vụ web giới thiệu dịch vụ RESTful mà tác giả phát triển luận văn Chương 2: Bảo mật với RESTful Chương giới thiệu phương pháp bảo mật cách thực áp dụng vào hệ thống tác giả trình bày chương Chương 3: Khung làm việc Laravel Giới thiệu khung làm việc Laravel, khung làm việc định nghĩa hỗ trợ thực thi dịch vụ RESTful Chương 4: Xây dựng phát triển API TOPUP Chương giới thiệu chi tiết hệ thống TOPUP, nguyên tắc hoạt động hệ thống mục tiêu mà hệ thống cần đạt được, áp dụng nguyên tắc REST sử dụng thư viện khung làm việc Laravel để thiết kế RESTfull API ứng dụng vào hệ thống TOPUP, lược đồ thiết kế chương để ta thấy RESTfull API phân biệt môđun khác tương tác - “country” : trả danh sách tất công ty viễn thông có sẵn mà khách hàng đăng ký - “telco” : trả thông tin dịch vụ hỗ trợ Topup, số tiền danh sách phí object alphanumeric string - Nếu class = countries, object = null - Nếu class = country, object = “country_code”: ISO 3166-1 alpha-2 code, ví dụ: US, VN, … - Nếu class = telco, object = “te co_id”: ID requested telco Định dạng response Trƣờng Kiểu liệu Mô tả Code interger Mã lỗi request Message string Chú thích cho mã lỗi alphanumeric Mã quốc gia công ty viễn thông country_code string (max character) đích, tiêu chuẩn ISO 3166-1 alpha-2 code, ví dụ: VN, US,… country_name alphanumeric string Tên quốc gia công ty viễn thơng đích đến telco_id interger ID cơng ty viễn thông Topup telco_name alphanumeric string Tên công ty viễn thông Topup service_id interger ID dịch vụ Topup service_name alphanumeric string Tên dịch vụ Topup destination_currency alphanumeric string Đơn vị tiền tệ quốc gia Topup destination_amounts float (9.3) Số tiền nhận người nhận source_currency alphanumeric string Đơn vị tiền tệ dùng vởi khách hàng source_amounts float (9.3) Số tiền gửi người gửi fee_amounts float (9.3) Phí tính giá trị Topup transmitted_amounts float (9.3) Số tiền thực tế gửi tới nhà mạng đích Ví dụ: 53 Request URI: GET http://vta-address:vta-port/service-info/telco/2 Response: { "code":"0", "massage":"Successful Request", "country_code":"HT", "country_name":"HAITI", "telco_id":"2", "telco_name":"Natcom", "service": { "service_id":"1", "service_name":"Prepaid Mobile Recharge", "source_currency":"USD", "source_amounts":"5,6,7", "fee_amounts":"1.05,1.06,1.07", "transmitted_amounts":"3.95,4.94,5.93", "destination_currency":"HTG", "destination_amounts":"172,216,259" } } 54 Hình 4.6 Lược đồ lấy thông tin dịch vụ 4.5.4 Phương thức “Topup” Phương pháp sử dụng để nạp tài khoản đích cho dịch vụ xác định với khoản tiền định Hình 4.6 luồng người dùng cần thực hành động TopUp Để thực hành động máy khách gửi yêu cầu HTTP POST tới URI /topup bao gồm tài nguyên để thực hành động TopUp Cũng trường hợp khác hệ thống xác thực người dùng thông qua tham số URI, header nội dung tài nguyên đính kèm Tiếp theo hệ thống kiểm tra hợp lệ biến đầu vào Khi liệu đầu vào hợp lệ hệ thống kiểm thông tin người dùng để đảm bảo tài khoản người dùng đủ để thực giao dịch Để thực giao dịch hệ thống tính phí giao dịch dựa vào biểu mẫu có sẵn thơng tin giao dịch khách hàng Nếu bước hồn thành khơng xảy lỗi hệ thống thực giao dịch TopUp, thực lưu log giao dịch, tạo ID giao dịch tạo thông báo giao dịch kết HTTP gửi lại cho người dùng Định dạng request URI: POST http://vta-address:vta-port/topup Tham số truyền vào Field Kiểu liệu Mô tả telco_id interger ID công ty viễn thông người nhận service_id interger ID dịch vụ cần phải nạp tiền sender alphanumeric Số điện thoại quốc tế người sử dụng 55 string muốn nạp tiền tài khoản người nhận (Phải định dạng MSISDN*) Recipient alphanumeric string Amount float (9.3) Tài khoản để áp dụng toán Cần định dạng MSISDN tài khoản toán Số tiền áp dụng cho người nhận (bằng tiền khách hàng) ID giao dịch tạo hệ thống alphanumeric client_transaction_id string khách hàng, cho giao dịch (chúng hỗ trợ tính gửi giao dịch khơng thành cơng tương lai) (*) MSISDN xây dựng bằng: MSISDN = CC + NDC + SN - CC = Mã quốc gia - NDC = Mã điểm đến quốc gia - SN = Số thuê bao Ví dụ: - 509987654321 = 509 – – 987654321, - 84444501982 = 84 – – 44501982 Định dạng response Trƣờng Kiểu liệu Mô tả Code interger Mã lỗi request Message String Chú thích mã lỗi vta_transaction_id alphanumeric string ID giao dịch hệ thống VTA source_currency alphanumeric string Đơn vị tiền tệ khách hàng thực yêu cầu Topup source_amount float (9.3) Số tiền Topup theo yêu cầu người gửi fee_amount float (9.3) Phí tính số tiền Topup transmitted_amount float (9.3) Số tiền thực tế gửi đến nhà mạng đích destination_currency alphanumeric string Đơn vị tiền tệ quốc gia đích destination_amount float (9.3) Số tiền Topup nhận người nhận 56 trans_time datetime Ngày giao dịch (YYYYMM-DD hh:mm:ss) Ví dụ: URI: POST http://vta-address:vta-port/topup Tham số truyền vào { "telco_id":"2", "service_id":"1", "sender":"12356789", "recipient":"50943746892", "amount":"5", "currency":"USD", "client_transaction_id":"131313" } Response: { "code":"0", "message":"Transaction Successful", "country":"HT", "vta_transaction_id":"234", "source_currency":"USD", "source_amount":"5", "fee_amount":"1.05", "transmitted_amount":"3.95", "destination_currency":"HTG", "destination_amount":"172", "trans_time":"2014-01-15 00:23:14" } 57 Hình 4.7 Lược đồ hành động TOPUP 4.5.5 Phương thức “Trans History” Đây phương thức truy vấn lịch sử giao dịch Topup Hình 4.7 luồng người dùng cần tra cứu lịch sử giao dịch hệ thống Để thực hành động máy khách gửi yêu cầu HTTP GET tới URI /trans-history/{ vta_transaction_id } với {vta_trasaction_id} mã giao dịch xác định lịch sử giao dịch cần lấy Yêu cầu hệ thống VTA tiếp nhận, mô đun xác thực phân tích URI tham số header để xác thực người dùng nêu phần 4.3.6 Trong trường hợp người dùng xác thực hệ thống kiểm tra hợp lệ biến đầu vào Nếu biến đầu vào thỏa mãn tất yêu cầu hệ thống hệ thống u cầu thơng tin từ CSDL giao dịch theo mã giao dịch mà khách hàng gửi đến Và cuối hệ thống tạo kết HTTP gửi lại cho người dùng Định dạng request URI: GET http://vta-address:vta-port/trans-history/{ vta_transaction_id } Định dạng response Trƣờng Kiểu liệu Mô tả Code Interger Mã lỗi request Message String Chú thích mã lỗi client_transaction_id alphanumeric string ID giao dịch hệ thống khách hàng 58 vta_transaction_id alphanumeric string ID giao dịch hệ thống VTA history_code Interger Mã lỗi giao dịch truy vấn history_message String Chú thích mã lỗi giao dịch truy vấn alphanumeric Đơn vị tiền tệ khách hàng thực string Topup source_amount Numeric Số tiền Topup theo yêu cầu người gửi fee_amount Numeric Phí tính số tiền Topup transmitted_amount float (9.3) Số tiền thực gửi đến cơng ty viễn thơng đích destination_currency alphanumeric string Đơn vị tiền tệ quốc gia đích người nhận destination_amount Numeric Số tiền Topup nhận người nhận trans_time Datetime Ngày thời điểm giao dịch (YYYY-MMDD hh:mm:ss) source_currency Ví dụ: Request: URI: GET http://vta-address:vta-port/trans-history/234 Response: { "code":"0", "message":"Successful Request", "client_transaction_id":"131313", "vta_transaction_id":"234", "history_code":"0", "history_message":"Transaction Successful", "source_currency":"USD", "source_amount":"5", "fee_amount":"1.05", "transmitted_amount":3.95, "destination_currency":"HTG", "destination_amount":"172", "trans_time":"2014-01-15 00:23:14" } 59 Hình 4.8 Lược đồ hành động lấy lịch sử giao dịch 4.5.6 Danh sách mã lỗi Đây danh sách đầy đủ mã lỗi trả hệ thống VTA Topup: Code Tin nhắn HTTP Code Transaction Successful/ Successful Request 200 10 Request is wrong format or not enough field 401 11 Client-ID not found or be blocked 401 12 Client IP address is malformed or not allowed 401 13 Invalid Format Timestamp 403 14 Invalid Request Timestamp 403 15 Duplicate Request Timestamp 403 16 Can't verify signature 403 17 Request denied Please contact support 403 40 Invalid input data 400 Ghi Missing required input 60 data Only 41 Invalid service class value 400 42 Invalid service object value 400 43 Your account is not allowed to use this service 400 49 Invalid action value 400 51 Duplicate client_transaction_id 400 52 Invalid format or Out of range topup amount 400 56 Transaction ID not found 400 66 The recipient number malformed or not exist is support “countries”, “telco” value: “country”, Input valid country_code, telco_id 200 The recipient number is a pos67 paid subscriber, refused 68 Transaction Incomplete 200 69 Request Timeout 200 80 Your credit limit is exceeded Can not perform topup action 200 98 99 transaction System not available Please try again later Unexpected Error contact support Please 200 500 500 4.6 Thử nghiệm đ nh gi kết 4.6.1 Giới thiệu Các khái niệm kỹ thuật REST trừu tượng mặt lý thuyết, để hiểu rõ REST tác giả xây dựng ứng dụng mô API nêu luận văn Ứng dụng xây dựng dựa framework Laravel Máy chủ web dùng để chạy ứng dụng Xampp Xampp chương trình tạo máy chủ Web tích hợp sẵn Apache, PHP, MySQL, FTP Server, Mail Server công cụ 61 phpMyAdmin Xampp có chương trình quản lý tiện lợi, cho phép chủ động bật tắt khởi động lại dịch vụ máy chủ lúc 4.6.2 Một số đoạn code mô tả thực thi API Lấy thông tin từ Header Hình 4.9 đoạn code lấy thông tin xác thực từ Header API Các thông tin truyền vào Header gồm: client_id, timestamp, signature dùng xác thực bảo mật API Hình 4.9 Lấy thông tin truyền vào Header Hàm x c thực tạo chữ ký Hình 4.10 đoạn code phương thức xác thực tạo chữ ký Chữ ký tạo áp dụng JSON Web Token Khóa cơng khai tạo từ client_id, timestamp biến truyền vào API, khóa riêng mã bí mật tạo lúc tạo client_id Việc so sánh chữ ký truyền vào HTTP Header chữ ký tạo API xác định thơng tin truyền vào có đáng tin cậy hay khơng Hình 4.10 Phương thức xác thực tạo chữ ký 4.6.3 Dùng thử API Để kiểm tra trực tiếp API tạo tác giả xây dựng ứng dụng mô việc sử dụng API 62 Một số đoạn code mơ tả dùng thử API Hình ảnh 4.11 mô tả việc tạo mảng request_header Mảng truyền vào HTTP Header lúc gọi API Hình 4.11 Hình ảnh tạo mảng request_header Hình 4.12 mơ tả việc gọi API Ping cách sử dụng hàm CURL Hình 4.12 Hình ảnh mơ tả việc gọi api ping Dùng thử API Ping Hình 4.13 Hình ảnh giao diện dùng thử API Ping 63 Hình 4.14 Hình ảnh giao diện dùng thử API Check Wallet Hình 4.15 Hình ảnh giao diện dùng thử API Service Info 64 Hình 4.16 Hình ảnh giao diện dùng thử API Topup Hình 4.17 Hình ảnh giao diện dùng thử API Trans History 65 KẾT LUẬN Kết u n Hầu hết web API ngày truy cập từ nơi đâu giới thông qua web Trong dự án này, dịch vụ web kiểu REST thực thi dùng thiết kế RESTful API, kết nhận thật thỏa đáng Do nói hệ thống API có nhiều yêu cầu phức tạp nhiên dễ dàng thực với REST Cùng với tham gia hai thành viên Nguyễn Vũ Hà Hồng Việt Long, chúng tơi xây dựng thành công hệ thống API TOPUP Thành viên Nguyễn Vũ Hà có vai trị xây dựng phần bảo mật xác thực cho hệ thống API Thành viên Hồng Việt Long có vai trị xây dựng Test Case cho hệ thống API Và tác giả chịu trách nhiệm xây dựng API với kiến trúc REST phối hợp với hai thành viên lại để kiểm tra lỗi hệ thống khắc phục lỗi phát sinh trình xây dựng Qua trình tìm hiểu thiết kế REST API, tác giả nói kiểu kiến trúc REST giải pháp thích hợp hệ thống API REST thay XML-PRC API GUI API với REST API chung mà điều khiển dịch vụ REST API kiểm chứng máy tính người sử dụng REST mà liệu trả theo nhiều kiểu đại diện khác Hơn với API chung thực rõ ràng hơn, rành mạch sử dụng lại API cho hệ thống web khác REST chung thực REST chứng tỏ tìm hiểu khái niệm REST nhiệm vụ thiết kế API theo ngun tắc khơng phức tạp ban đầu tiếp xúc REST - Những nhiệm vụ đề tài hoàn thành: + Tìm hiểu ứng dụng REST + Tìm hiểu khung làm việc Laravel + Xây dựng thử nghiệm hệ thống Topup sử dụng API theo nguyên tắc REST - Hạn chế: + Hiện hệ thống Topup đáp ứng kết nối kênh toán / topup trực tiếp người dùng Hƣớng ph t triển - Xây dựng Wholesale WS Gateway đáp ứng kết nối kênh toán/ topup đối tác bán buôn cước viễn thông 66 DANH MỤC TÀI LIỆU THAM KHẢO [1] Topup - http://fsl.fmrib.ox.ac.uk/fsl/fslwiki/TOPUP [2] R Fielding et al (1999) Hypertext Transfer Protocol – HTTP/1.1 IETF RFC 2616 [3] T Berners-Lee et al (1996) Hypertext Transfer Protocol – HTTP/1.0 IETF RFC 1945 [4] R Fielding et al (1997) Hypertext Transfer Protocol – HTTP/1.1 IETF RFC 2068 [5] R Fielding, editor (2006) RFC for REST REST Discussion Mailing List [6] R Fielding (2000) Architectural Styles and The Design of Network-based Software Architectures PhD thesis, University of California, Irvine [7] L Richardson, S Ruby, et al (2007) Restful Web Services O‟Reilly, 1st edition [8] World wide web consortium (2004) http://www.w3.org/ W3C [9] Laravel Framework http://laravel.com/ [10] M Gudgin et al (2007) SOAP Version 1.2 Part 1: Messaging Framework (Second Edition) W3C Recommendation W3C [11] E Christensen et al (2001) Web Services Description Language (WSDL) 1.1 W3C Note W3C [12] C Pautasso, O Zimmermann, and F Leymann (2008) RESTful Web Services vs "Big" Web Services: Making the Right Architectural Decision IW3C2 [13] Restful webservices (2008) http://www.slideshare.net/gouthamrv/restfulservices-2477903 [14] P James Http caching (2006) http://www.peej.co.uk/articles/http-caching.html [15] Nadia Mohedano Troyano (2010) The Design of a RESTful Web Service PhD thesis, kungliga tekniska hÖgskolan school of electrical engineering tnssm 67