Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Http response - dubbio

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205

    Http response - dubbio

    Buongiorno,
    effettuo una chiamata POST a 'api/1.0/device' passando dei parametri e li salvo in una tabella col metodo 'insertDevice' e questo mi restituisce l'id della riga dove sono stati salvati i dati, adesso il mio dubbio è corretto fare così per restituire che l'inserimento è avvenuto con successo?
    codice:
    
    
    codice:
    		$response = array();
    		if($id_insert) {
    			$response['id'] = $id_insert;
    			$response['result'] = true;
    		} else {
    			$response['id'] = 0;
    			$response['result'] = false;
    		}
    		//invio tramite json del risultato dell'inserimento
    		$encoded = json_encode($response);
    		header('Content-type: application/json');
    		echo $encoded;


    Qui di seguito il codice completo!

    codice:
    
    
    codice:
    	Route::set('api/1.0/device',function(){
    		//recupero dati dalla chiamata post
    		$json = file_get_contents('php://input');
    		$obj = json_decode($json);
    
    
            if($obj->{'uuid'}) $uuid = $obj->{'uuid'}; else $uuid = '';
            if($obj->{'deviceType'}) $deviceType = $obj->{'deviceType'}; else $deviceType = '';
            if($obj->{'manufacturer'}) $manufacturer = $obj->{'manufacturer'}; else $manufacturer = '';
            if($obj->{'model'}) $model = $obj->{'model'}; else $model = '';
            if($obj->{'os'}) $os = $obj->{'os'}; else $os = '';
            if($obj->{'osVersion'}) $osVersion = $obj->{'osVersion'}; else $osVersion = '';
            if($obj->{'language'}) $language = $obj->{'language'}; else $language = '';
    
    
            //metodo insert dati nella tabella device e ritorna id
    		$id_insert = Device::insertDevice($uuid,$deviceType,$manufacturer,$model,$os,$osVersion,$language);
    
    
    		print 'iddddddd'.$id_insert;
    		$response = array();
    		if($id_insert) {
    			$response['id'] = $id_insert;
    			$response['result'] = true;
    		} else {
    			$response['id'] = 0;
    			$response['result'] = false;
    		}
    		//invio tramite json del risultato dell'inserimento
    		$encoded = json_encode($response);
    		header('Content-type: application/json');
    		echo $encoded;
    	});


  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Questo così ad occhio sembra Laravel giusto?

    L'invio di json è corretto, però devi togliere la riga con "print" nel secondo blocco di codice.
    la funzione header() deve essere utilizzata prima dell'invio di qualsiasi output, e print genera un output.

    Sono un po' arrugginito con Laravel, ma il metodo Route::set() esiste? Non dovrebbe essere Route::get()?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Quote Originariamente inviata da M4V1 Visualizza il messaggio
    Questo così ad occhio sembra Laravel giusto?

    L'invio di json è corretto, però devi togliere la riga con "print" nel secondo blocco di codice.
    la funzione header() deve essere utilizzata prima dell'invio di qualsiasi output, e print genera un output.

    Sono un po' arrugginito con Laravel, ma il metodo Route::set() esiste? Non dovrebbe essere Route::get()?
    Grazie mille!!! Non ci posso credere che un semplice print mi sballasse tutto.

    il metodo set l'ho fatto semplicemente io:
    codice:
    	class Route
    	{
    		public static $validRoutes = array();
    
    
    		public static function set($route, $function) 
    		{
    			if($_GET['url'] == $route) {
    				$function->__invoke();
    			}
    		}
    	}

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.