- Khách hàng có thể thanh toán vào bất cứ lúc, không mất
API CỦA APPENGINE
Để làm việc với Memcache trong API của App Engine, chúng ta cần import thư viện
import com.google.appengine.api.memcache.*;
Để tương tác với Memcache chúng ta cần tạo ra đối tượng MemcacheService như sau:
MemcacheService memcache =
MemcacheServiceFactory.getMemcacheS ervice();
Và tất cả những gì chúng ta cần để làm việc được với Memcache là tìm hiểu về đối tượng MemcacheService này.
MemcacheService lưu dữ liệu với hai tham số key và value, thông qua phương thức put(key, value):
8. Lưu trữ 1 đối tượng:
memcache.put("cachekey", cachedata);
9. Lưu trữ nhiều đối tượng:
Map<Object, Object> listcacheobj = new HashMap<Object,Object>();
listcacheobj.put("cachekey1", "cachedata1"); listcacheobj.put("cachekey2", "cachedata2"); memcache.putAll(listcacheobj);
10.MemcacheService lấy các dữ liệu đã lưu dựa vào key mà chúng ta đã đặt ban đầu thông qua phương thức get(key);
1. Lấy một đối tượng:
memcache.get("cachekey");
2. Lấy nhiều đối tượng: List<Object> listcacheobj =
Arrays<Object>.asList("cachekey1","cachekey2"); Map<Object, Object> articleSummaries = memcache.getAll(listcacheobj);
3. MemcacheService có thể xóa một hoặc nhiều đối tượng dựa vào key của nó, bằng phương thức delete(), và deleteAll(), tuy nhiên đối với phương thức deleteAll() thì tổng kích thước cho mỗi lần thực hiện phải nhỏ hơn 1MB.
Chúng ta có thể lưu trữ các đối tượng memcache với không gian tên khác nhau để tránh tình trạng xung đột khóa. Ví dụ chúng ta có hai lĩnh vực cần lưu trữ là Tin tức và Giải trí, chúng ta có thể lưu với hai không gian tên khác nhau và khi đó các key ở không gian tên TinTuc hoàn toàn có thể trùng với key ở không gian tên GiaiTri mà không hề xảy ra xung đột. Cách thiết lập không gian tên như sau: memcache.setNameSpace("TinTuc");
Ngoài ra chúng ta còn có thể thiết lập thời gian lưu trữ của memcache, cũng như lấy các số liệu thống kê trên memcache…
URL FETCH
Ứng dụng App Engine có thể tương tác với những ứng dụng khác hay truy cập những nguồn tài nguyên khác trên web bằng địa chỉ URL. Ứng dụng có thể sử dụng URL Fetch Service để có thể tương tác với các ứng dụng khác thông qua giao thức HTTP và HTTPS.
Ứng dụng có thể lấy dữ liệu từ địa chỉ URL dạng HTTP (http://...) hay HTTPS (https://...)
Địa chỉ URL để lấy dữ liệu có thể sử dụng các cổng: 80 – 90, 440 – 450, 1024 – 65535. Nếu trong địa chỉ URL không chỉ định số cổng
thì dạng URL http://... sẽ sử dụng cổng 80, còn dạng https://... sẽ dùng cổng 443.
URL Fetch Service hỗ trợ mọi cách thức lấy dữ liệu trong HTTP như: GET, POST, PUT, DELETE, HEAD; có thể bao gồm header và payload (phần thân của HTTP request).
Không nên để ứng dụng của mình lấy dữ liệu từ URL đang làm việc vì sẽ gây ra tình trạng lặp vô tận.
Có thể đặt thời gian lấy dữ liệu: mặc định là 5 giây và tối đa là 10 giây.
URL Fetch Service hỗ trợ cả 2 dạng request là đồng bộ và bất đồng bộ. Và ứng dụng của chúng ta có thể có tới 10 request bất đồng bộ tại cùng 1 thời điểm.
Nếu chúng ta lấy dữ liệu theo dạng HTTPS, mọi dữ liệu trên request và response đều được mã hóa.
Ứng dụng có thể thiết lập HTTP header cho request. Khi gửi 1 request dạng HTTP POST, nếu không chỉ định phần Content-Type ở header, thì header sẽ được thiết lập giá trị . Đây là Content-Type được dùng bởi web form.
Vì lý do bảo mật, các trường sau đây trong header không được thay đổi:
11. Content-Length
12.Host
13.Vary
15.X-Forward-For
URL Fetch Service sẽ trả về dữ liệu từ phía response, bao gồm code, header và body. Mặc định, nếu dữ liệu trả về là chứa mã code tham khảo đến địa chỉ khác, service sẽ kết nối đến địa chỉ đó để lấy dữ liệu cho ứng dụng. Tối đa là qua 5 tầng kết nối, nếu quá số lượng trên thì service sẽ báo lỗi.
Nếu bạn có sử dụng tường lửa, ứng dụng của bạn có thể dử dụng Google Secure Data Connector (SDC). Thông tin chi tiết về SDC, xin tham khảo: http://code.google.com/securedataconnector/
URL Fetch Service cho request có dung lượng tối đa là 1 megabyte và response tối đa là 32 megabyte.