Flutter – 매개변수와 함께 Google Cloud Functions 사용
14128 단어 serverlessgcpflutter
Google 클라우드 기능 만들기
먼저 Google Cloud Function을 업데이트하겠습니다. 이 함수는 변수를 처리해야 합니다. 이러한 변수를 사용하는 두 가지 쉬운 방법이 있습니다. 쿼리 매개변수 또는 HTTP 호출 본문을 통해 값을 전달할 수 있습니다. 물론 HTTP 호출 본문을 통해 정보를 전달할 때 호출은 GET 호출이 아닌 POST 호출이 되어야 합니다.
// Check URL parameters for "name" field
// "world" is the default value
String name = request.getFirstQueryParameter("name").orElse("world");
getFirstQueryParameter를 사용하여 요청의 쿼리 매개변수를 검색할 수 있습니다. 본문을 읽으려면 요청 작성자를 가져와야 합니다. 이를 파싱하는 한 가지 방법은 Google GSON 라이브러리를 사용하는 것입니다. 동일한 방식을 사용하려는 경우 다음 종속성을 추가해야 합니다.
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.8</version>
</dependency>
이제 요청 본문을 구문 분석하고 여기에서 변수에 액세스할 수 있습니다.
package com.example;
import com.google.cloud.functions.HttpFunction;
import com.google.cloud.functions.HttpRequest;
import com.google.cloud.functions.HttpResponse;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Logger;
public class Example implements HttpFunction {
private static final Logger logger = Logger.getLogger(Example.class.getName());
private static final Gson gson = new Gson();
@Override
public void service(HttpRequest request, HttpResponse response)
throws IOException {
String name = request.getFirstQueryParameter("name").orElse("world");
try {
JsonElement requestParsed = gson.fromJson(request.getReader(), JsonElement.class);
JsonObject requestJson = null;
if (requestParsed != null && requestParsed.isJsonObject()) {
requestJson = requestParsed.getAsJsonObject();
}
if (requestJson != null && requestJson.has("name")) {
name = requestJson.get("name").getAsString();
}
} catch (JsonParseException e) {
logger.severe("Error parsing JSON: " + e.getMessage());
}
var writer = new PrintWriter(response.getWriter());
writer.printf("Hello %s!", name);
}
}
Google Cloud Platform에서 이 기능을 배포하는 방법에 대한 자세한 설명을 보려면 여기의 지침을 따르십시오.
Flutter 애플리케이션 업데이트
이 설명은 previous blog post의 Flutter Application으로 시작합니다. 블로그 게시물에서는 HTTP 패키지로 Google Cloud 함수를 호출하는 방법을 설명합니다. 이 애플리케이션은 Future와 함께 작동합니다. 따라서 결과는 HTTP 호출이 완료된 경우에만 표시됩니다. 다음은 HTTP 호출입니다.
import 'package:http/http.dart' as http;
Future<String> callCloudFunction() async {
final response = await http
.get(Uri.parse('insert-url-of-your-cloud-fuction'));
if (response.statusCode == 200) {
return response.body;
} else {
throw Exception('Failed to execute function');
}
}
쿼리 매개변수로 함수를 호출하려면 해당 변수를 GET 요청 URL에 추가할 수 있습니다.
import 'package:http/http.dart' as http;
Future<String> callCloudFunction() async {
final response = await http
.get(Uri.parse('insert-url-of-your-cloud-fuction?name=Bart'));
if (response.statusCode == 200) {
return response.body;
} else {
throw Exception('Failed to execute function');
}
}
Google Cloud Function은 요청 본문도 살펴봅니다. HTTP 호출에 본문을 포함하려면 GET 메서드를 POST 메서드로 변환해야 합니다. 이제 다음과 같은 방식으로 함수가 예상하는 본문을 보낼 수 있습니다.
import 'dart:convert';
import 'package:http/http.dart' as http;
Future<String> callCloudFunction() async {
final response = await http.post(Uri.parse('insert your url here'),
body: jsonEncode(<String, String>{
'name': 'Bart',
}));
if (response.statusCode == 200) {
return response.body;
} else {
throw Exception('Failed to execute function');
}
}
이 단계는 변수를 사용하여 클라우드 함수를 호출하는 데 필요한 전부입니다! 이 예제의 코드는 여기Github에서 사용할 수 있습니다. 여전히 질문, 의견, 제안 또는 언급이 있으면 알려주세요!
게시물 Flutter – Using Google Cloud Functions with parameters이 Barttje에 처음 나타났습니다.
Reference
이 문제에 관하여(Flutter – 매개변수와 함께 Google Cloud Functions 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bartvwezel/flutter-using-google-cloud-functions-with-parameters-18d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)