Theo API, chính xác ý bạn là gì?
Trên nhiều nền tảng, bạn có thể liên kết đến một DLL hoặc cấu trúc tương tự, nhưng liệu có phải được biên dịch lại cho một mục tiêu riêng cụ thể (Intel / ARM) hoặc endianness vẫn đủ điều kiện không? Một giao diện nhị phân cụ thể vẫn có thể gặp khó khăn với một số ngôn ngữ nhất định do các vấn đề hoặc cấu trúc kiểu dữ liệu (con trỏ cố gắng được trả về ngôn ngữ không hỗ trợ chúng tốt), vì vậy bạn cũng phải xem xét việc thiết kế API để không để loại trừ một số ngôn ngữ hoặc sử dụng nó từ các ngôn ngữ đó cồng kềnh.
Một cái gì đó di động như C và giao diện dựa trên các điểm cuối nhị phân trong DLL có thể tốt và thường có thể gọi được trên hầu hết các nền tảng và từ hầu hết các ngôn ngữ, nhưng nó có thể cần được biên dịch khác nhau và / hoặc được cung cấp theo các hương vị khác nhau hoặc được liên kết với các thư viện tĩnh khác nhau.
Đối với tôi, dường như sự lựa chọn ngôn ngữ bạn viết thư viện hoặc dịch vụ của bạn hoặc bất cứ điều gì, theo định nghĩa, không phải là nội tại cho câu hỏi cho đến khi bạn cung cấp thêm về nền tảng / dịch vụ mà API trưng ra. Nếu bạn có thể giả sử ngăn xếp mạng có sẵn và hiệu suất mức gọi hàm được liên kết trực tiếp không phải là một yêu cầu, API có thể dễ dàng dựa trên HTTP với một số loại shim cho ngôn ngữ máy khách để làm cho các yêu cầu được minh bạch.
Tôi nghĩ nói chung câu hỏi này quá rộng để có ích trong thế giới thực, bởi vì bạn chưa đưa ra dấu hiệu nào về loại API nào có thể phù hợp với loại dịch vụ đang được cung cấp.