{"id":34748714,"url":"https://github.com/bearchit/appsync-handler","last_synced_at":"2026-05-01T22:33:03.733Z","repository":{"id":146556623,"uuid":"185022907","full_name":"bearchit/appsync-handler","owner":"bearchit","description":"AWS AppSync Resolver Handler Library","archived":false,"fork":false,"pushed_at":"2019-05-07T08:41:50.000Z","size":12,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-03-24T03:38:22.221Z","etag":null,"topics":["appsync","aws","go","graphql","handler","lambda","resolver"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bearchit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-05T11:35:20.000Z","updated_at":"2024-06-19T03:59:43.971Z","dependencies_parsed_at":null,"dependency_job_id":"c07dce75-db5e-4dd9-ad00-63a191477ec5","html_url":"https://github.com/bearchit/appsync-handler","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/bearchit/appsync-handler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bearchit%2Fappsync-handler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bearchit%2Fappsync-handler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bearchit%2Fappsync-handler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bearchit%2Fappsync-handler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bearchit","download_url":"https://codeload.github.com/bearchit/appsync-handler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bearchit%2Fappsync-handler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32515838,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appsync","aws","go","graphql","handler","lambda","resolver"],"created_at":"2025-12-25T04:57:27.021Z","updated_at":"2026-05-01T22:33:03.724Z","avatar_url":"https://github.com/bearchit.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AWS AppsSync Handler\n\n## Resolver signatures\n\n```text\nfunc()\nfunc() error\nfunc(in) error\nfunc() (out), error)\nfunc(in) (out, error)\nfunc(context.Context) error\nfunc(context.Context, out) error\nfunc(context.Context) (out, error)\nfunc(context.Context, in) (out, error)\n```\n\n\"in\", \"out\" are types compatiable with the [encoding/json](https://golang.org/pkg/encoding/json).\n\n## Example\n\n### AppSync Request Mapping Template\n\n```vtl\n{\n    \"version\": \"2017-02-28\",\n    \"operation\": \"Invoke\",\n\n    #set($args = $ctx.args.input)\n    $utils.qr($args.put(\"userID\", $ctx.identity.sub))\n\n    \"payload\": {\n        \"resolve\": \"query.posts\",\n        \"arguments\": $utils.toJson($args)\n    }\n}\n```\n\n### Lambda function\n\n```go\npackage main\n\nimport (\n    \"context\"\n\n    \"github.com/bearchit/appsync-handler\"\n)\n\n\ntype postsInput struct {\n    UserID    string `json:\"userID\"`\n    Limit     uint64 `json:\"limit\"`\n    NextToken string `json:\"nextToken\"`\n}\n\ntype post struct {\n    ID      string `json:\"id\"`\n    Title   string `json:\"title\"`\n    Content string `json:\"content\"`\n}\n\nfunc main() {\n    h := appsync.NewHandler()\n\n    h.AddResolver(\"query.post\", func(ctx context.Context, input *postsInput) ([]*post, error) {\n        // You can access `arguments` in the payload with struct `postInput`\n        log.Println(input.UserID)\n        log.Println(input.Limit)\n        log.Println(input.NextToken)\n\n        return []*post{\n            {\n                ID:      \"1\",\n                Title:   \"post #1\",\n                Content: \"A content of post #1\",\n            },\n            {\n                ID:      \"2\",\n                Title:   \"post #2\",\n                Content: \"A content of post #2\",\n            },\n        }, nil\n    })\n\n    lambda.Start(h.Handle)\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbearchit%2Fappsync-handler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbearchit%2Fappsync-handler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbearchit%2Fappsync-handler/lists"}