Acceso a la API Exchange

Tutoriales, Visual Basic 2010

Este post es la parte 6 de 9 del artículo: Usando la API de Betfair

La mayoría de las acciones de Betfair las realizaremos a través de la API Exchange UK.  Al igual que hicimos en un artículo anterior donde agregamos el servicio Global ahora añadiremos el servicio Exchange UK. La dirección a usar será: https://api.betfair.com/exchange/v5/BFExchangeService.wsdl (recordar en darle rápidamente a aceptar a la advertencia de seguridad) y lo renombraremos a BFUK. 

Al igual que con el servicio Global añadiremos una variable de clase con el servicio Exchange UK

[vb]

Dim BetfairUK As New BFUK.BFExchangeService

[/vb]

 

Por la misma razón nuestro método checkHeader que usábamos para comprobar la cabecera no funcionaría por lo que lo sobrecargaremos para que acepte también este tipo.

[vb]
Sub CheckHeader(ByVal Header As BFUK.APIResponseHeader)
With Header
Print(“HeaderCode = ” & .errorCode.ToString)
oHeaderGL.sessionToken = .sessionToken
End With
End Sub
[/vb]

Tendremos dos métodos llamados de la misma forma pero que admiten parámetros de diferente tipo y el compilador se encargará de usar el adecuado en cada caso. Esto es lo que llamamos sobrecarga.

Ahora ya podemos hacer nuestra primera llamada al servicio exchangeUK. Añadiremos un botón a nuestro formulario de nombre btnMercados y con el texto Mercados. Y hacemos doble click para escribir en el evento click del botón.

[vb]
Private Sub btnMercados_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMercados.Click
escribirLog(“*** Mercados ***”)
Dim oMarketsReq As New BFUK.GetAllMarketsReq
Dim oMarketsResp As BFUK.GetAllMarketsResp
With oMarketsReq
.header = oHeaderUK()
ReDim .eventTypeIds(0) : .eventTypeIds(0) = 7 ‘Para las carreras de caballos
ReDim .countries(1) : .countries(0) = “GBR” : .countries(1) = “ZAF”
.fromDate = Today
.toDate = Today.AddDays(1)
End With
oMarketsResp = BetfairUK.getAllMarkets(oMarketsReq) ‘LLamada a la API UK
With oMarketsResp
CheckHeader(.header)
escribirLog(“ErrorCode = ” & .errorCode.ToString)
If .errorCode = BFUK.GetAllMarketsErrorEnum.OK Then
escribirLog(.marketData)
End If
End With
End Sub
[/vb]

Este método realiza una llamada común a la API. Para esta llamada la cabecera de petición necesita varios parámetros opcionales que están definidos en la API. Los dos parámetros (.eventTypeIds y .contries) requieren un array porque múltiples valores pueden ser usados.

El código muestra una forma sencilla de crear matrices para este propósito. eventTypeIds se obtienen a partir de la función getAllActiveEventTypes que vimos en un artículo anterior (el 7 es para carreras de caballos) Los dos parámetros de fecha (.fromDate y .toDate) aceptan cualquier método de fecha de VB. Hay que tener en cuenta que un tipo Date también almacena un valor de tiempo.  En el ejemplo indicamos desde el inicio de hoy hasta el inicio de mañana.

Probarlo y veréis como nos devuelve una cadena de valores que está comprimida y necesita ser tratada para sacar información útil. Lo veremos en el paso siguiente.

Betfair también tiene una API Exchange Australiana. Si queremos crear un servicio con ella procederíamos como con la API UK pero con la dirección: https://api-au.betfair.com/exchange/v5/BFExchangeService.wsdl y la renombraríamos a BKAU.  Realmente todas las llamadas que haremos a BKUK valdrían para BKAU simplemente cambiando UK por AU pues los métodos son exactamente los mismos al igual que las clases

Fuente: Step 5. Accessing an Exchange API

Partes del artículo<< Típica llamada a la API: getActiveEventTypesDescomprimiendo cadenas de respuesta >>

Deja un comentario

  • (will not be published)


9 + 8 =