Laravel Api- Preluare Date dintr-un catalog online

Salut , trebuie sa fac o aplicatie laravel care sa :
preia date in format json dupa un catalog online ce imi ofera acces, intrebarea este : imi puteti recomanda, vrun tutorial, packet sau ceva pentru toata treaba asta?
Multumesc in avans…

Da, Laracasts ar fi un inceput.

Urmez, testez si invat deja de la Laracasts.

Iti recomand package-ul Guzzle, care se integreaza si cu Laravel, foarte usor, datorita composer. E perfect pentru a lucra cu REST API.

1 Like

Am reusit marea problema pe care o am acum, ca in controler imi afiseaza datele… insa nu resesc sa trec prin blade si aplic stilizare pentru fiecare element in parte…
Mi-a iesit sa ofer stilizare pentru elementele unei matrici, cu un foreach insa cu guzzle in cazul meu un obiect afiseaza valorile de tip string , folosesc tagul

 insa e doar json format, eu trebuie sa il stilizez.
            

Nu am inteles. cum arata JSON-ul? Ce ai in vedere prin faptul ca Guzzle afiseaza valorile de tip string, si foloesti tagul?

 public function main()
    {
        /** @var \GuzzleHttp\Client $client */
        $client = new \GuzzleHttp\Client();

        $url = 'https://api.site.com/12321312/dasdasdasd';
        /** @var \GuzzleHttp\Psr7\Response $res */
        $res = $client->request('GET', $url);
        /** @var \GuzzleHttp\Psr7\Stream $resBody */
        $resBody = $res->getBody();
        $cData = json_decode($resBody);
        // return '<pre>'.print_r( $cD, true).'</pre>';
        return view('welcome', ['cD' => $cD]);

    }

imi afiseaza nume :
valoare
titlu :slight_smile:

valoare …
ma intereseaza sa imi afiseze , posibilitate ca sa ofer stilizare pentru fiecare camp json ,
initial stiu cum sa fac asta cu foreach

<body>
{{ $companyData->nume_firma }}
</body>

Tot nu am înțeles.
Explici foarte prost.
Cum adică sa afișeze posibilitatea ca sa oferi stilizare pentru fiecare câmp json ?

Arata cum ai făcut pentru stilizare pentru matrice, ca sa înțeleg cu ce e diferit fata de cazul de fata. Eu nu vad vreo diferența.
json_decode(), îți permite sa transformi rezultatul în obiect sau în array, prin parametrul 2. Și din moment asta, e un obiect sau array obișnuit, nu are nicio treaba Guzzle aici.

"Stilizare fiecare element în parte ", asta de mai jos, e singurul lucru care îmi vine în cap, dar e absurd.

@foreach ( $rows as $row)  
<span style="font-weight : bold">{{ $row->nume }}</span>
@endforeach

Imi cer scuze pentru faptul ca am explicat prost…

am urmatorul controller :

 <?php

namespace App\Http\Controllers;

use App\Card;

use Illuminate\Http\Request;

use  App\Http\Controllers\Controller;

class CardsController extends Controller
{
 public function index()
 {
  $cards =Card::all();

     return view('cards.index',compact('cards'));
 }
    public  function  show( Card $card)
    {
//     $card = Card::with('notes.user')->find(1);
//
////        $card->load('notes.user');



      




        return view('cards.show', compact ('card'));
    }
}

am urmatorul view :

 @extends('layout')

@section('content')
    <h1>
        {{ $card->title  }}
    </h1>
<ul class="list-group">
    @foreach($card->notes as $note)
        <li class="list-group-item">
            {{ $note->body }}
        <a href="#" style="float:right">{{ $note->user_id }}</a>
        </li>
    @endforeach
</ul>
    <h3> Add a new Note</h3>
    <form method="POST" action="/cards/{{$card->id }}/notes ">
        <input type="hidden" name="_token" value="{!! csrf_token() !!}">
        <div class="form-group">


        <textarea name="body" class="form-control"></textarea>
        </div>

        <div class="form-group">
            <button type="submit" class="btn btn-primary">Add Note </button>
        </div>
    </form>
    </div>


    @stop

========================
In cazul meu $card->id , afiseaza id ul si $body din $card…
Acelasi lucrul vreau sa pot face si cu codul preluat din Json.
Multumesc foarte mult pentru ajutorul acordat pana acum…

Si $body ce conține in cazul tău?
Te referi cumva sa ai datele ierarhic, adică în forma de arbore? Daca da, asta depinde de cum este structurat json-ul, dar dacă e structurat bine, atunci poți face asa ca și aici, cu foreach în foreach.

2 Likes

[quote=“Pirvan_Marian, post:7, topic:3253”]
$url = ‘https://api.site.com/12321312/dasdasdasd’;
/** @var \GuzzleHttp\Psr7\Response $res /
$res = $client->request(‘GET’, $url);
/
* @var \GuzzleHttp\Psr7\Stream $resBody */
$resBody = $res->getBody();
$cData = json_decode($resBody);
// return ‘<pre>’.print_r( $cD, true).’</pre>’;
return view(‘welcome’, [‘cD’ => $cD]);

}
[/quote
Corect, functioneaza ,multmumesc frumos, raman dator cu o bere, doua.

Acordă două minute citirii ghidului despre cum să ceri ajutor, în special partea cu postarea blocurilor de cod.

1 Like

M-am simtit cu musca pe caciula inca de cand l-ai scris si l-am citit, mersi.

1 Like