¿Ejemplos de las mejores API web SOAP / REST / RPC? ¿Y por qué te gustan? ¿Y qué les pasa? [cerrado]

En mi empresa estamos comenzando a ramificarnos en API web para acceder y actualizar nuestros datos; inicialmente para socios pero luego probablemente para el público en el futuro. Por el momento, el aspecto de la API (p. Ej., SOAP, REST, RPC) está completamente abierto y todavía no hemos tomado ninguna decisión, por lo que me interesan los dos ejemplos de API web que la gente piensa que son buenas y por qué piensas ese.

Lo que me interesa son las opiniones de personas que usan diferentes idiomas (es probable que ofrezcamos la API a las personas que usan varias plataformas, en particular, incluyendo .NET, Java, ActionScript y JavaScript) sobre las API web que crees que son buenas ejemplos, y con los que has tenido buenas experiencias.

Algunos puntos que me gustaría cubrir:

¿Prefiere los servicios de tipo SOAP o los de estilo REST / RPC? Sospecho que las personas con soporte de plataforma (por ejemplo, .NET, Java) preferirán SOAP y las personas que usan lenguajes sin soporte de plataforma preferirán los otros, pero me gustaría validar esa suposición.

¿Le importa si una API es realmente RESTful o si es un antiguo estilo RPC HTTP GET / POST? Si es así, ¿por qué te importa? ¿Es más importante que una API se describa a sí misma correctamente (es decir, no afirme ser RESTful si es un estilo RPC) que si realmente es una de las dos?

Necesitamos verificar quién está usando el servicio. He estado buscando la autenticación de Amazon S3 que usa un identificador público y un token privado que se usa para convertir los parámetros de la solicitud en un token de verificación (esto también es similar a flickr). ¿Has utilizado este tipo de autenticación antes y cómo te fue? ¿Hay algún algoritmo hash que le parezca problemático (es decir, no es compatible con su plataforma)? ¿Prefiere enviar el hash en un encabezado HTTP o en el URI?

¿Cómo deben manejarse las versiones? ¿Es una buena idea tener un/v1/ escriba el subdirectorio para que se puedan agregar versiones futuras, ¿o haría algo diferente como tener la versión en la carga útil de la solicitud o consulta? ¿Cuánto tiempo esperaría que fuera compatible con una versión de una API con la que había construido (es decir, si se introdujera la v2, cuál sería su expectativa durante la vida útil de la v1)?

Además, cualquier otra opinión y punto a cubrir sería útil.

Me mantengo vago deliberadamente sobre el tipo real de API que estamos implementando, ya que busco orientación general en términos de lo que la gente piensa que son buenas API y mecanismos de implementación, por lo que esta publicación y sus respuestas serán útiles para más personas. en el futuro.

Nota: He buscado y no puedo encontrar una pregunta genérica sobre esto, todas parecen específicas para un determinado tipo de API, pero si es un duplicado, hágamelo saber. Además, si debería ser un wiki de la comunidad (creo que la gente debería obtener crédito por las respuestas, así que no lo he hecho), entonces avíseme y lo cambiaré para que sea.

Respuestas a la pregunta(8)

Su respuesta a la pregunta