Consumiendo Web API con Flurl

Es muy común que a la hora de crear aplicaciones móviles nos llegue la idea de poder conectarnos a alguna data proveniente de alguna base de datos u otra fuente especifica, este tipo de interacciones se hacen por medio de algún servicio web, para saber como podemos consumir un servicio web, en este tutorial vamos a utilizar Flurl.

Flurl es un moderno, asíncrono y portable constructor de URL’s y una librería de cliente http para .Net.

Consumir aplicaciones con Flurl es muy sencillo, vamos a ir a nuestro proyecto (yo estoy utilizando un proyecto creado con la extensión de Prism),  primero vamos a descargar los siguientes paquetes y los instalaremos solamente en nuestro proyecto compartido.

Antes de comenzar profundamente con el proyecto, primero vamos a utilizar la siguiente URL para consumir

https://jsonplaceholder.typicode.com/posts

Si abrimos esta URL desde nuestro navegador, la misma nos devolverá una lista en formato Json con las siguientes propiedades.

{
   "userId": 1,
   "id": 1,
   "title": "sunt aut facere repellat provident occaecati excepturi optio 
            reprehenderit",
   "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et 
            cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est 
            autem sunt rem eveniet architecto"
}

Copiamos el primer bloque o bien todo el código que nos devuelva en el navegador e iremos a la siguiente pagina web

https://json2csharp.com/

Vamos a pegar todo lo que copiamos y clickeamos Convert, esto nos devolverá una clase C# en la que solo reemplazaremos el nombre de la clase Root por Post y nos quedara algo así.

public class Post    {
        public int userId { get; set; } 
        public int id { get; set; } 
        public string title { get; set; } 
        public string body { get; set; } 
}

Copiamos el código de esa clase, vamos a nuestro proyecto, crearemos una carpeta y la nombraremos Models y dentro de esa carpeta creamos una clase de nombre Post.cs y reemplazamos el código por el que tenemos anteriormente.

Habiendo hecho esto vamos a ir dentro de la carpeta ViewModels y abriremos el archivo MainPageViewModel.cs y agregaremos el siguiente código.

public ObservableCollection<Post> PostList { get; set; } = new ObservableCollection<Post>();
public ICommand LoadData { get; set; }

public MainPageViewModel(INavigationService navigationService)
: base(navigationService)
{
    Title = "Main Page";
    LoadData = new DelegateCommand(async()=>await LoadDataAPI());
    LoadData.Execute(null);

 }

 public async Task LoadDataAPI() { 
            
 }

Aquí ya tenemos la estructura para empezar a trabajar con Flurl, vamos a ir dentro del método LoadDataAPI, es bien sencillo el uso de esta librería, para empezar simplemente debemos definir una variable para capturar los datos y empezar a construir nuestra URL.

Simplemente digitamos nuestra URL base luego del “Await” y al dar punto al final del string, este nos permitirá ver los métodos con los que Flurl nos permite construir nuestro api.

Seleccionaremos AppendPatchSegment y le enviaremos el método “Posts” y para consumir el servicio, volvemos a dar punto mas y buscamos el método GetJasonAsync.

Aquí vale aclarar, que bien podemos solamente indicarle que nos traiga la data del Json sin definirle ningún tipo de objeto, pero para los fines, necesitamos serializar la data en un objeto con las mismas propiedades del API, como en esta caso estamos recibiendo una colección (lista) de datos, vamos a serializarlos en una lista de tipo Post que es el nombre de la clase modelo que creamos anteriormente.

Al final solo debemos iterar la data ya agregarla a nuestro objeto.

Ahora en nuestro Xaml vamos a tener la siguiente estructura con un collectionview para desplegar la data.

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="FlurlPost.Views.MainPage"
             Title="{Binding Title}">

    <ContentPage.Content>
        <StackLayout>
            <CollectionView ItemsSource="{Binding PostList}">
                <CollectionView.ItemTemplate>
                    <DataTemplate>
                        <StackLayout>
                            <Frame Margin="10">
                                <Grid RowDefinitions="Auto,Auto" ColumnDefinitions="*">
                                    <Label Text="{Binding title}" Grid.Column="0" Grid.Row="0" TextColor="Black"/>
                                    <Label Text="{Binding body}" Grid.Column="0" Grid.Row="2"/>
                                </Grid>
                            </Frame>
                        </StackLayout>
                    </DataTemplate>
                </CollectionView.ItemTemplate>
            </CollectionView>
        </StackLayout>
    </ContentPage.Content>

</ContentPage>

Y ejecutaremos nuestra aplicacion y tendremos el siguiente efecto

Gracias por visualizar este post, no olvides dejar un lindo comentario si te gusto.

23 thoughts to “Consumiendo Web API con Flurl”

  1. Hi! I just would like to offer you a big thumbs
    up for the excellent information you have got right here on this post.
    I’ll be coming back to your website for more soon.

  2. Wow, incredible blog layout! How long have you been blogging for?
    you make blogging look easy. The overall look of your website is wonderful, let alone the
    content!

  3. Выведение Общий клиренс силденафила составляет 41 л/ч, а конечный T1/2 — 3–5 ч. После приема внутрь, также как после в/в введения, силденафил выводится в виде метаболитов, в основном кишечником (около 80% пероральной дозы) и в меньшей степени — почками (около 13% пероральной дозы). Северная Звезда, ЗАО Отмечено снижение клиренса силденафила при одновременном применении ингибиторов изофермента цитохрома СYР3А4 (кетоконазол, эритромицин, циметидин). Циметидин (800 мг), неспецифический ингибитор изофермента цитохрома СYР3А4, при совместном приеме с силденафилом (50 мг) вызывает повышение концентрации силденафила в плазме на 56%. http://gou.nacputte.be/community/profile/pobbrenna276306/ Вообще, пользоваться попперсами следует тогда, когда очень хочется по-настоящему расслабиться и получить максимальное удовольствие от взаимных ласк со своим партнером по время полового акта. Попперсы по своей сути являются соединениями летучей жидкости, которые произведены из нитратов.  Классический попперс AMSTERDAM special 15ml во время отдыха в клу… Выше представлена общая информация о том, как происходит действие попперсов и сколько оно длится. Но сила и продолжительность эффекта могут отличаться в зависимости от пола и особенностей организма, и определить какая марка подойдет именно Вам, можно только на основании собственного опыта применения.

  4. Magnificent goods from you, man. I have bear in mind your stuff prior to and you are
    just extremely great. I actually like what you have
    bought here, really like what you’re stating and the way in which
    in which you are saying it. You make it entertaining and you continue to care for to stay it smart.

    I can’t wait to learn much more from you. That is actually
    a wonderful web site. https://www.herpessymptomsinmen.org/where-to-buy-hydroxychloroquine/

  5. I would like to thank you for the efforts
    you’ve put in writing this website. I’m hoping to see the same
    high-grade content from you in the future as well.
    In fact, your creative writing abilities has inspired me to get my
    own blog now 😉

Leave a Reply

Your email address will not be published. Required fields are marked *