Como ya os he contacto en un pasado POST (http://www.demianrasko.com/2015/08/nueva-web-api-en-update-1.html) la nueva Web API, ya está aquí, y llega para quedarse.
Esta nueva Web API abrirá un nuevo mundo en el desarrollo con Dynamics CRM, y hoy os voy a mostrar como poder empezar a “jugar” con ella desde una aplicación de consola. Tener en cuenta que está en preview y solo es para pruebas.
Lo primero que he hecho, es crearme una trial en CRM Online,o utilizar una existente pero hay que asegurarse que tiene Update 1, y luego habilitar la preview de Web API:
![image image](http://lh3.googleusercontent.com/-xRiyuvcje8M/VgY_IWAFkII/AAAAAAAAEcU/WOCwjbtonG0/image_thumb%25255B1%25255D.png?imgmax=800)
Para comprobar que funciona, podéis meter las URLs y probarlo por ejemplo:
![image image](http://lh3.googleusercontent.com/-jl-DCAa9Wyk/VgY_JNTQ-tI/AAAAAAAAEck/dp9c-dAkpXk/image_thumb%25255B3%25255D.png?imgmax=800)
![SNAGHTML2f29100a SNAGHTML2f29100a](http://lh3.googleusercontent.com/-bsjciTDKEJk/VgY_KT6DPeI/AAAAAAAAEc0/upeRuEAj6vQ/SNAGHTML2f29100a_thumb%25255B1%25255D.png?imgmax=800)
![SNAGHTML2f28ce9c SNAGHTML2f28ce9c](http://lh3.googleusercontent.com/-Efl5JPitkJE/VgY_LrHHcYI/AAAAAAAAEdE/Mcny-_T8QNY/SNAGHTML2f28ce9c_thumb%25255B1%25255D.png?imgmax=800)
Ok, ya funciona. Lo siguiente que hay que hacer es registrar nuestra aplicación de consola que vamos a desarrollar con Azure para poder dar permisos a la misma de acceder a datos de CRM. El paso a paso para hacer esto está descrito en este artículo: https://msdn.microsoft.com/dynamics/crm/mt149065.aspx
En realidad significa dos pasos:
1) Registrar el AD del CRM el de nuestro Azure, para que la autenticación de los dos ADs se “vean” bien
2) Registrar nuestra App y darle permisos
Para registrar el AD, básicamente vamos a Azure, y añadimos el AD de nuestra trial de CRM Online, y nos logueamos con las credenciales del CRM Online y autorizamos el enlace:
![SNAGHTML2f2cc496 SNAGHTML2f2cc496](http://lh3.googleusercontent.com/--2gwz0FWWoE/VgY_MZHJ9XI/AAAAAAAAEdU/ZEWNBocw_WQ/SNAGHTML2f2cc496_thumb%25255B1%25255D.png?imgmax=800)
Seleccionamos “Usar directorio existente” (el de CRM Online)
![SNAGHTML2f2d14aa SNAGHTML2f2d14aa](http://lh3.googleusercontent.com/-MEtun_R7zo0/VgY_NC-Q3QI/AAAAAAAAEdk/D0pzk5C9QKQ/SNAGHTML2f2d14aa_thumb%25255B1%25255D.png?imgmax=800)
Nos autenticamos con las credenciales de nuestra trial:
![SNAGHTML2f2d532a SNAGHTML2f2d532a](http://lh3.googleusercontent.com/-nF1lq4fx4xo/VgY_N7qeYuI/AAAAAAAAEd0/Mdp5a0jpzys/SNAGHTML2f2d532a_thumb%25255B1%25255D.png?imgmax=800)
![SNAGHTML2f2db196 SNAGHTML2f2db196](http://lh3.googleusercontent.com/-qna4OTqTSxk/VgY_PH8fTMI/AAAAAAAAEeE/hx5oglsmp_U/SNAGHTML2f2db196_thumb%25255B1%25255D.png?imgmax=800)
Confirmamos la relación entre ADs:
![SNAGHTML2f2de884 SNAGHTML2f2de884](http://lh3.googleusercontent.com/-RxK8oDfyAXw/VgY_QPJzJTI/AAAAAAAAEeU/FyXSj02SA5s/SNAGHTML2f2de884_thumb%25255B1%25255D.png?imgmax=800)
Lo siguiente que hay que hacer es ir a ese AD, y añadir nuestra apliación y darle permisos. Como resultado tendremos un Aplication ID
![SNAGHTML2f2f822f SNAGHTML2f2f822f](http://lh3.googleusercontent.com/-YRbuwLogbVk/VgY_Q1JkYMI/AAAAAAAAEek/wq3A3gIJfD4/SNAGHTML2f2f822f_thumb%25255B1%25255D.png?imgmax=800)
Seleccionamos agregar la aplicación que estamos desarrollando (y seguimos los pasos siguientes):
![SNAGHTML2f2fba47 SNAGHTML2f2fba47](http://lh3.googleusercontent.com/-dAe-iC4xSfA/VgY_R5I0j0I/AAAAAAAAEe0/szn4lDmH6jY/SNAGHTML2f2fba47_thumb%25255B1%25255D.png?imgmax=800)
Finalmente tenemos el Id de cliente, que utilizaremos en nuestro código:
![SNAGHTML2f300058 SNAGHTML2f300058](http://lh3.googleusercontent.com/-R19adYwoQ_8/VgY_S6czYfI/AAAAAAAAEfE/STGf9Z4OEgE/SNAGHTML2f300058_thumb%25255B2%25255D.png?imgmax=800)
Ahora hay que darle permisos a nuestra nueva aplicación, para conectarse al CRM:
![SNAGHTML2f304baa SNAGHTML2f304baa](http://lh3.googleusercontent.com/-T83GPODBkZo/VgY_UPdWpiI/AAAAAAAAEfU/XH-2VZPBi6Y/SNAGHTML2f304baa_thumb%25255B1%25255D.png?imgmax=800)
Seleccionamos Dynamics CRM Online:
![SNAGHTML2f3097f5 SNAGHTML2f3097f5](http://lh3.googleusercontent.com/-69n10IGqZ5s/VgY_VI8qY3I/AAAAAAAAEfk/LmahDhSSOL4/SNAGHTML2f3097f5_thumb%25255B1%25255D.png?imgmax=800)
Le damos los permisos:
![SNAGHTML2f30dd1c SNAGHTML2f30dd1c](http://lh3.googleusercontent.com/-6TOiKIms4D8/VgY_V0bxSbI/AAAAAAAAEf0/i-TI5Je4ppM/SNAGHTML2f30dd1c_thumb%25255B1%25255D.png?imgmax=800)
Genial, una “pequeña” parte del trabajo, ya está hecha.
Ahora vamos a abrir el Visual Studio por fin. En este caso voy a basarme en los ejemplo que hay en https://code.msdn.microsoft.com/Basic-Operations-with-web-67fc1d8f
Primero abrimos el proyecto y en el App.Config cambiamos lo siguiente (en ClienteID y en RedirectURL debemos introducir lo que pusimos en Azure al registrar la App):
![SNAGHTML2f38ab66 SNAGHTML2f38ab66](http://lh3.googleusercontent.com/-ZA91wMsXPLA/VgY_XbxZYFI/AAAAAAAAEgE/6Fii04CXL3s/SNAGHTML2f38ab66_thumb%25255B3%25255D.png?imgmax=800)
Al ejecutar el código, en la línea que intenta autenticar con CRM para recoger el Token, nos aparecerá una ventana de autenticación con CRM:
![SNAGHTML2f3c62a2 SNAGHTML2f3c62a2](http://lh3.googleusercontent.com/-lf_r2IjHBYI/VgY_YZ6l_xI/AAAAAAAAEgU/shHffuyRsKw/SNAGHTML2f3c62a2_thumb%25255B1%25255D.png?imgmax=800)
Luego viene la línea donde intenta crear una Cuenta, que es una petición simple de tipo “POST” con al jSON de la Cuenta a crear:
![SNAGHTML2f3d3bad SNAGHTML2f3d3bad](http://lh3.googleusercontent.com/-JNs8ixEZtw0/VgY_ZahlTuI/AAAAAAAAEgk/ppxZ4jllM1I/SNAGHTML2f3d3bad_thumb%25255B1%25255D.png?imgmax=800)
Si ejecutamos esa línea podemos ver en nuestro “Fiddler” como esta Cuenta es enviada y la URL con la que nos responde:
![SNAGHTML2f3dcb89 SNAGHTML2f3dcb89](http://lh3.googleusercontent.com/-zSKYp62ll_Y/VgY_achSxkI/AAAAAAAAEg0/X9YkNNxKuyA/SNAGHTML2f3dcb89_thumb%25255B1%25255D.png?imgmax=800)
Que si la Copiamos y pegamos en nuestro navegador tenemos la misma:
![SNAGHTML2f3ee5f2 SNAGHTML2f3ee5f2](http://lh3.googleusercontent.com/-5t-9w1G33PY/VgY_bZFqMjI/AAAAAAAAEhE/ZaMMBfvQgDA/SNAGHTML2f3ee5f2_thumb%25255B1%25255D.png?imgmax=800)
Simple, sencillo, moderno, abierto y directo.
Por fin disponemos en Dynamics CRM de una API completamente RESTfull que implementa todos los métodos y actualizada a los estándares oData v4.
Emocionantes tiempos nos vienen en los próximos tiempos para los desarrolladores de Dynamics CRM. Sin duda un gran paso adelante en la plataforma y un gran trabajo del equipo de producto en este punto.
Creo que si bien este punto es muy “teki” (técnico) y no todos los implementadores de CRM son desarrolladores, el mensaje importante a destacar es que Dynamics CRM será convertida en una plataforma que si bien sigue siendo desarrollada en .NET por debajo, será abierta a todos los lenguajes de desarrollo y tecnologías y dispositivos. Será mucho mas fácil realizar integraciones, aplicaciones móviles, etc.
Espero les haya gustado!
Un abrazo!
@demian_rasko