feat: example of apigateway rest api
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# this function takes in "input_string" and return the sha256 hash of that string
|
||||
|
||||
import json
|
||||
import hashlib
|
||||
|
||||
def lambda_handler(event, context):
|
||||
# Get input_string from query params, body, or path
|
||||
input_string = None
|
||||
|
||||
# Try query parameters first
|
||||
if 'queryStringParameters' in event and event['queryStringParameters']:
|
||||
input_string = event['queryStringParameters'].get('input_string')
|
||||
|
||||
# Try request body
|
||||
if not input_string and 'body' in event:
|
||||
try:
|
||||
body = json.loads(event['body']) if isinstance(event['body'], str) else event['body']
|
||||
input_string = body.get('input_string')
|
||||
except:
|
||||
input_string = event['body']
|
||||
|
||||
# Try path parameter as fallback
|
||||
if not input_string and 'pathParameters' in event:
|
||||
input_string = event['pathParameters'].get('input_string', event['pathParameters'].get('proxy'))
|
||||
|
||||
if not input_string:
|
||||
return {
|
||||
'statusCode': 400,
|
||||
'headers': {'Content-Type': 'application/json'},
|
||||
'body': json.dumps({'error': 'input_string required'})
|
||||
}
|
||||
|
||||
# Calculate SHA256
|
||||
sha256_hash = hashlib.sha256(input_string.encode('utf-8')).hexdigest()
|
||||
|
||||
return {
|
||||
'statusCode': 200,
|
||||
'headers': {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
'body': json.dumps({
|
||||
'input_string': input_string,
|
||||
'sha256': sha256_hash
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user