Cuối năm đọc được một cuốn sách khá hay về đề tài quản lý dành cho các công ty công nghệ. Nay có chút thời gian viết vài dòng review để mọi người có chút thông tin về sách này và nếu thấy hay thì có thể mua đọc để hiểu hơn về các hoạt động của CEO công nghệ, từ quy mô nhỏ cho đến lớn.
Chắc hẳn là lập trình web thì mọi người đã từng một lần kết nối đến một hệ thống khác thông qua Web Service, có thể là SOAP, RESTful…Nội dung bài viết này mình sẽ chia sẻ với mọi người một số vấn đề và giải pháp mà mình đang gặp phải khi triển khai các Restful service.
Restful Documentation
Trong quá trình thiết kế Restful API, documentation (docs) cho API là một trong những thứ cực kỳ cần thiết để giúp bạn cũng như công ty, khách hàng dễ dàng làm việc trên API mà bạn thiết kế.
Docs API đơn giản có thể là các ghi chú, word, excel hoặc các SaaS base service để giúp tạo API nhanh chóng và tiện lợi hơn cũng như hỗ trợ làm việc nhóm hiệu quả hơn.
Đã thử dùng rất nhiều công cụ và nhiều phương tiện khác nhưng không có cái nào phù hợp nhu cầu nên đành tự phát triển một công cụ tạo docs API riêng cho mình, đơn giản và linh hoạt hơn, đó là Apitoy.com.
Cũng như hầu hết các công cụ SaaS based khác để làm Restful API Docs, Apitoy.com cũng cho phép tạo nhiều dự án, mỗi dự án sẽ có nhiều nhóm request (group). Mỗi request sẽ có quy định loại request (GET, POST, PUT..), tham số đầu vào, định dạng cũng như các thông tin request / response của một request.
Một số hình ảnh của Apitoy:
Danh sách Zone (Project)Danh sách các Request của một zone.Chỉnh sửa chi tiết một RequestChi tiết một Request Docs
Mock Server
Cũng như các lập trình viên thiết kế Restful API khác, việc dựng một Mock server từ một API Docs là một nhu cầu cực kỳ cần thiết để việc test cũng như tách biệt giữa web service consumer & service producer trong quá trình phát triển ứng dụng. Nhờ có Mock server mà phía frontend có thể có data giả (fake data) nhưng có cấu trúc đúng với cấu trúc của API thiết kế và sẽ không lệ thuộc vào backend phải hoàn thành API trước khi thử.
Apitoy có một tính năng rất thú vị và độc đáo là cho phép tự tạo một mock service dựa vào một request mà bạn đã thiết kế và response data (fake data) sẽ được auto-generate khi có request vào đúng mô tả request của bạn như đúng HTTP Method (GET, POST< PUT…), đúng URL…
Lưu ý là để mock service có thể chạy thì bạn bắt buộc phải tạo ít nhất 1 response cho request. Các snippet động “{{…}}” sẽ được bỏ khi xem docs và được thay thế khi có request để lấy mock data.
Apitoy hỗ trợ một số hình thức generate dữ liệu động sau:
Kiểu dữ liệu chuẩn
Nếu các giá trị có dạng “Integer”, “Float”, “String” thì sẽ được thay thế bằng các dữ liệu ngẫu nhiên tương ứng với kiếu giá trị như “100”, “3.14”, “Hello world”…
String{{phoneNumber}}: Thay thế bằng số điện thoại ngẫu nhiên
String{{email}}: thay thế bằng email ngẫu nhiên
Integer{{randomNumber}}: thay thế bằng một số ngẫu nhiên
Integer{{randomNumber:5}}: thay thế bằng một số ngẫu nhiên có 5 chữ số
…
Bạn có thể tham khảo website https://github.com/fzaninotto/Faker để biết tất cả các Snippet hỗ trợ trong Apitoy để generate các dữ liệu “giống thật” hơn.
Apitoy Snippet
Bên cạnh các snippet hỗ trợ từ thư viên Faker, apitoy còn cung cấp 2 snippet khác là “enum” và “repeat”.
– String{{enum:option1:option2:option3}}: chọn ngẫu nhiên một giá trị trong danh sách option. Ví dụ: Integer{{enum:0:1}}, String{{enum:”Yes”:”No”}}…
– {{repeat:repeat_id:repeat_count:repeat_seperator}}…{{/repeat:repeat_id}}: lặp lại một đoạn code được đánh dấu. Trong đó: “repeat_id” để đánh dấu đoạn code cần lặp, không có 2 đoạn repeat có cùng “repeat_id”. “repeat_count” số lần lặp lại của đoạn code bạn đánh dấu. “repeat_separator” ký tự phân cách giữa các lần lặp, mặc định là dấu phẩy “,”.
Số là dạo này làm việc và nghiên cứu nhiều về kiến trúc Microservice và đang chuyển toàn bộ kiến trúc sang Microservice. Trong quá trình này, Docker là một công nghệ không thể nào bỏ qua vì Docker sẽ giúp ích rất nhiều trong quá trình triển khai và quản lý các service. Trong phạm vi bài viết này mình sẽ không đi sâu vào chi tiết kiến trúc Microservice cũng như mô tả kỹ về hoạt động của Docker mà sẽ tập trung vào giới thiệu sơ về Docker và dựng một môi trường thực tế dùng Docker để triển khai Web Server cho một website.
Dạo gần đây có nhiều hội, nhóm, diễn đàn và các anh ăn trên, ngồi tróc (CxO) bàn về Big Data nên mình cũng đú theo một bài hy vọng chia sẻ góc nhìn của mình về cái gọi là Big Data này.
Vừa mới nhận được con Leap Motion, có chút cảm hứng nên viết bài này, chia sẻ với các bạn một chút góc nhìn về công nghệ của tương lai và hướng đi mới của các lập trình viên.
Leap Motion là một trong 3 thiết bị đang được quan tâm trên cộng đồng công nghệ thế giới. Trong bài viết này, mình sẽ giới thiệu với các bạn về 3 thiết bị mà mình nghĩ có thể gây được sức hút cho cả người dùng và giới developer; đó là Leap Motion, Google Chromecast và Google Glass.