Chào mọi người, mình có một vài thắc mắc và suy nghĩ về API như sau mong mọi người giải đáp giúp mình.
- Ứng dụng Facebook mobile (iOS, Android) kết nối với server bằng RESTful API?
- Mình có thể dùng API để tự viết ứng dụng Facebook cho mình được không? Chắc là không được. Vì sao không được? Vì API của Facebook là private. Vậy thì private ở đây nghĩa là gì? Nghĩa là chỉ ứng dụng Facebook mới được phép gọi API còn những ứng dụng khác không được phép truy cập? Vậy làm thế nào Facebook có thể bảo vệ API như vậy? Phải chăng mình không gọi được API của Facebook chỉ vì mình không biết endpoint của họ? Nếu mình biết những endpoint đó thì mình có gọi được không?
- Mình nghĩ có 2 kiểu bảo mật API. Thứ nhất là xác thực client. Tức là chỉ những client cho phép mới được gọi tới API đó bằng key hay gì đó mà mình chưa hình dung được. Ví dụ như trường hợp của Facebook thì chỉ ứng dụng của Facebook mới gọi được API còn ứng dụng chưa được phép thì sẽ không gọi được.
Thứ hai là xác thực người dùng (user) bằng username và mật khẩu của người dùng mỗi lần gọi API bằng token.