Mysql
 sql >> Base de données >  >> RDS >> Mysql

Connect Parse avec une base de données externe ?

Si vous voulez dire quelque chose comme un connecteur mysql commun, alors la réponse est non, vous ne pouvez pas. À l'heure actuelle, la seule façon de faire une analyse et autre chose en relation est d'interroger depuis et vers Parse. Pour être clair :

  • Si vous souhaitez obtenir une valeur de Parse, qui est stockée dans mysql, vous devez utiliser une requête http vers un module php spécifique stocké sur votre site Web php (et implémenté par vous) qui attend un paramètre et renvoyer le résultat dans un manière spécifique, normalement au format json, en utilisant également l'en-tête http application/json.

  • Si vous souhaitez obtenir une valeur de php, qui est stockée sur la base de données d'analyse, vous pouvez exécuter un appel REST à partir de php en suivant les spécifications sur le site Web d'analyse ( https://parse.com/docs/rest/guide/ ), ou simplement en utilisant le sdk php ( https://github.com/ParsePlatform/parse- php-sdk ). Jetez également un œil aux Parse Webhooks.

D'après ce que j'ai compris, vous disposez déjà d'un service Web fonctionnel, ce faisant, vous ne feriez que proxy les ressources stockées sur votre serveur sur mysql à vos clients via Parse. En d'autres termes, vous devez créer une fonction Parse Cloud pour chaque type d'informations que vous souhaitez récupérer sur les clients utilisant le SDK Parse (pour iOS ou Android) et une autre fonction Parse Colud pour chaque action que vous effectuez sur vos appareils et que vous souhaitez enregistrer. sur votre base de données mysql, toujours via le système Parse.

Mon avis personnel, c'est de rester sur Mysql, surtout parce que sur Parse on a encore pas mal de limitation sur les requêtes ( pas de group by, pas distinct, query timeout, etc. ), alors que ça semble être un très bon service pour le push notification. Quoi qu'il en soit, tout cela dépend de la complexité de votre logiciel et, comme je l'ai dit, ce n'est que mon avis.

[Modifier]

Voici un exemple :

Dans Parse cloud code, créons une fonction cloud appelée "get_user_info"

Parse.Cloud.define("get_user_info", 

function(request,response){

    // Parameters from client (iOS/Android app)
    var requestedUserId = request.params.user_id;

    // Calling beckend service for getting user information
    Parse.Cloud.httpRequest({
        method: "POST",        
        url: "https://www.yourPhpWebsite.com/getUser.php", /* This could be your url for the proper php module */
        body: { "php_param_user_id":requestedUserId }, /* Here you compose the body request for the http call, passing the php parameters and their values */
        success: function(httpResponse) {

        /* We expect that the php response is a Json string, using the header('application/json'), so: */
        var jsonResponse = JSON.parse(httpResponse.text);

        /* sample structure in jsonResponse: { "name":"Joe", "surname":"Banana", "birth_date":"01-02-1999" } */

        /* Do any additional stuff you need... */

        /* return the result to your iOS/Android client */
        return response.success( { "myRequestedUserInfo" : jsonResponse } );

        },
        error: function(httpResponse) {            
                return response.error({ "msg":"Unable to fetch this user", "code":123456 }); // sample error response            
        }
    });

});

L'exemple de module 'getUser.php' pourrait être

<?php

$expectedUserId = $_POST['php_param_user_id'];

// query your MySql db using passed user id
$query = "SELECT name,surname,birth_date FROM MyUserTable Where id = ".$expectedUserId;

// perform your query (the above one is just an example, would be better to use PDO and any other check, just to avoid SQL Injection)
// ...
// ..
// .

$resultQuery = row[0];

// sample json structure
$jsonResponseToParse = '{ "name":'.resultQuery["name"].', "surname":'.resultQuery["surname"].', "birth_date":'.resultQuery["birth_date"].' }';

header('application/json');

echo jsonResponseToParse;

exit();

?>

J'espère que ça aide