Restricciones de la API gratuita

Tutoriales, Visual Basic 2010

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

Si usamos la API gratuita tendremos una serie de restricciones. No todas las llamadas estarán disponibles y algunas de ellas tendrán un límite de uso por minuto. Aun así es totalmente factible realizar un programa útil con la API gratuita. Para ver estas restricciones se pueden ver en esta tabla comparativa.

Esté límite de llamadas nos hace ser económico en el uso de ellas. Aún usando la API completa se debería ser eficaz en el uso de la API. Me pareció leer por ahí que con la API completa realizas un alto número de llamadas de una función por segundo (20 o más)  tendrías que pagar por ello, en la api gratuito lo único que pasaría es que da error.

Por ejemplo, tabla muestra que GetMarketPrices no puede ser llamada más de 10 veces por minuto. Realizaremos una estructuración de la secuencia de llamada de tal forma que tendremos dos métodos uno con la petición y otro con la respuesta.

[vb]
Function reqCuotasM(ByVal idMercado As Integer) As BFUK.GetMarketPricesReq
Dim oMPReq As New BFUK.GetMarketPricesReq
With oMPReq
.header = oHeaderUK()
.marketId = idMercado
End With
Return oMPReq
End Function
[/vb]

Esta función devuelve un objeto de petición de una llamada getMarketPricesReq del mercado que le pasemos.

[vb]
Sub showCuotasM(ByVal MpriceResp As BFUK.GetMarketPricesResp)
Dim Lay, Back As String
With MpriceResp
CheckHeader(.header)
escribirLog(“ErrorCode = ” & .errorCode.ToString)
If .errorCode = BFUK.GetMarketPricesErrorEnum.OK Then
With .marketPrices
escribirLog(“MarketID = ” & .marketId)
For i = 0 To .runnerPrices.Length – 1
With .runnerPrices(i)
escribirLog(“Runner ” & i + 1 & ” LPM = ” & .lastPriceMatched)
Back = “”
For j = 0 To .bestPricesToBack.Length – 1
With .bestPricesToBack(j)
Back = Back & ” ” & .price & “/” & Int(.amountAvailable)
End With
Next
Lay = “”
For j = 0 To .bestPricesToLay.Length – 1
With .bestPricesToLay(j)
Lay = Lay & ” ” & .price & “/” & Int(.amountAvailable)
End With
Next
escribirLog(“Back = ” & Back & ” Lay = ” & Lay)
End With
Next
End With
End If
End With
End Sub
[/vb]

Este método muestra la información de la llamada en el cuadro de texto. Los precios y las cantidades disponibles para cada runner  (según estuve viendo runner lo llaman a cada apuesta, es decir en el mercado final de fútbol los runner serían 0-0, 1-0,1-1, 0-1 …..)  Para comprobar esto añadiremos otro botón llamado btnCuotas y de texto Cuotas. Y con doble click añadiremos en su evento:

[vb]
Private Sub btnCuotas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCuotas.Click
escribirLog(“*** Cuotas ***”)
showCuotasM(BetfairUK.getMarketPrices(reqCuotasM(103358810)))
End Sub
[/vb]

Sustituyendo IDMERCADO por el id correspondiente, para ello ejecutamos nuestro test y en mercados podremos ver el id al comienzo de cada linea… en mi caso por ejemplo 103358810.

Si todo funciona correctamente podremos ver la información en el cuadro de texto y su pulsamos muchas veces seguidas y rápidamente para enviar más peticiones de las permitidas lo único que nos pasará es que recibiremos el menasje de

Fuente: Step 7. Restrictions of the Free API.

Partes del artículo<< Descomprimiendo cadenas de respuestaUsando un temporizador >>

Deja un comentario

  • (will not be published)


+ 8 = 15