Validate a translation request using a callback endpoint

Validates translation requests by supporting a callback endpoint that waits for HTTP requests to arrive at that endpoint, resuming the execution of the workflow at a later point in time.

Explore further

For detailed documentation that includes this code sample, see the following:

Code sample

YAML

  main 
 : 
  
 params 
 : 
  
 [ 
 translation_request 
 ] 
  
 steps 
 : 
  
 - 
  
 log_request 
 : 
  
 call 
 : 
  
 sys.log 
  
 args 
 : 
  
 text 
 : 
  
 ${translation_request} 
  
 - 
  
 vars 
 : 
  
 assign 
 : 
  
 - 
  
 exec_id 
 : 
  
 ${sys.get_env("GOOGLE_CLOUD_WORKFLOW_EXECUTION_ID")} 
  
 - 
  
 text_to_translate 
 : 
  
 ${translation_request.text} 
  
 - 
  
 database_root 
 : 
  
 ${"projects/" + sys.get_env("GOOGLE_CLOUD_PROJECT_ID") + "/databases/(default)/documents/translations/"} 
  
 - 
  
 log_translation_request 
 : 
  
 call 
 : 
  
 sys.log 
  
 args 
 : 
  
 text 
 : 
  
 ${text_to_translate} 
  
 - 
  
 store_translation_request 
 : 
  
 call 
 : 
  
 googleapis.firestore.v1.projects.databases.documents.patch 
  
 args 
 : 
  
 name 
 : 
  
 ${database_root + exec_id} 
  
 updateMask 
 : 
  
 fieldPaths 
 : 
  
 [ 
 'text' 
 ] 
  
 body 
 : 
  
 fields 
 : 
  
 text 
 : 
  
 stringValue 
 : 
  
 ${text_to_translate} 
  
 result 
 : 
  
 store_translation_request_result 
  
 - 
  
 translate 
 : 
  
 call 
 : 
  
 googleapis.translate.v2.translations.translate 
  
 args 
 : 
  
 query 
 : 
  
 q 
 : 
  
 ${text_to_translate} 
  
 target 
 : 
  
 "FR" 
  
 format 
 : 
  
 "text" 
  
 source 
 : 
  
 "EN" 
  
 result 
 : 
  
 translation_result 
  
 - 
  
 assign_translation 
 : 
  
 assign 
 : 
  
 - 
  
 translation 
 : 
  
 ${translation_result.data.translations[0].translatedText} 
  
  
 - 
  
 log_translation_result 
 : 
  
 call 
 : 
  
 sys.log 
  
 args 
 : 
  
 text 
 : 
  
 ${translation} 
  
 - 
  
 store_translated_text 
 : 
  
 call 
 : 
  
 googleapis.firestore.v1.projects.databases.documents.patch 
  
 args 
 : 
  
 name 
 : 
  
 ${database_root + exec_id} 
  
 updateMask 
 : 
  
 fieldPaths 
 : 
  
 [ 
 'translation' 
 ] 
  
 body 
 : 
  
 fields 
 : 
  
 translation 
 : 
  
 stringValue 
 : 
  
 ${translation} 
  
 result 
 : 
  
 store_translation_request_result 
  
  
 - 
  
 create_callback 
 : 
  
 call 
 : 
  
 events.create_callback_endpoint 
  
 args 
 : 
  
 http_callback_method 
 : 
  
 "POST" 
  
 result 
 : 
  
 callback_details 
  
 - 
  
 log_callback_details 
 : 
  
 call 
 : 
  
 sys.log 
  
 args 
 : 
  
 text 
 : 
  
 ${callback_details} 
  
 - 
  
 store_callback_details 
 : 
  
 call 
 : 
  
 googleapis.firestore.v1.projects.databases.documents.patch 
  
 args 
 : 
  
 name 
 : 
  
 ${database_root + exec_id} 
  
 updateMask 
 : 
  
 fieldPaths 
 : 
  
 [ 
 'callback' 
 ] 
  
 body 
 : 
  
 fields 
 : 
  
 callback 
 : 
  
 stringValue 
 : 
  
 ${callback_details.url} 
  
 result 
 : 
  
 store_callback_details_result 
  
 - 
  
 await_callback 
 : 
  
 call 
 : 
  
 events.await_callback 
  
 args 
 : 
  
 callback 
 : 
  
 ${callback_details} 
  
 timeout 
 : 
  
 3600 
  
 result 
 : 
  
 callback_request 
  
 - 
  
 assign_approval 
 : 
  
 assign 
 : 
  
 - 
  
 approved 
 : 
  
 ${callback_request.http_request.body.approved} 
  
 - 
  
 store_approval 
 : 
  
 call 
 : 
  
 googleapis.firestore.v1.projects.databases.documents.patch 
  
 args 
 : 
  
 name 
 : 
  
 ${database_root + exec_id} 
  
 updateMask 
 : 
  
 fieldPaths 
 : 
  
 [ 
 'approved' 
 ] 
  
 body 
 : 
  
 fields 
 : 
  
 approved 
 : 
  
 booleanValue 
 : 
  
 ${approved} 
  
 result 
 : 
  
 store_approval_result 
  
 - 
  
 return_outcome 
 : 
  
 return 
 : 
  
 text 
 : 
  
 ${text_to_translate} 
  
 translation 
 : 
  
 ${translation} 
  
 approved 
 : 
  
 ${approved} 
 

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .

Create a Mobile Website
View Site in Mobile | Classic
Share by: