Skip to content

Instantly share code, notes, and snippets.

.PHONY: build clean deploy
build:
go get ./...
go mod vendor
env GOOS=linux go build -ldflags="-s -w" -o bin/create_article api/create_article/main.go
env GOOS=linux go build -ldflags="-s -w" -o bin/create_author api/create_author/main.go
env GOOS=linux go build -ldflags="-s -w" -o bin/get_authors api/get_authors/main.go
env GOOS=linux go build -ldflags="-s -w" -o bin/get_articles api/get_articles/main.go
service: serverless-example
frameworkVersion: '2'
provider:
name: aws
runtime: go1.x
lambdaHashingVersion: 20201221
region: eu-central-1
environment:
package main
import (
"encoding/json"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
"github.com/marioarizaj/serverless-example/api/common"
)
package main
import (
"encoding/json"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
"github.com/marioarizaj/serverless-example/api/common"
)
package main
import (
"encoding/json"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
"github.com/marioarizaj/serverless-example/api/common"
"github.com/marioarizaj/serverless-example/models"
)
package main
import (
"encoding/json"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
"github.com/marioarizaj/serverless-example/api/common"
"github.com/marioarizaj/serverless-example/models"
)
type StorageIFace interface {
CreateAuthor(author *models.Author) (*models.Author, error)
GetAllAuthors() ([]models.Author, error)
CreateArticle(article *models.Article) (*models.Article, error)
GetAllArticles() ([]models.Article, error)
}
// Code down here does not change
package common
import "github.com/marioarizaj/serverless-example/models"
func (s *Storage) CreateAuthor(author *models.Author) (*models.Author, error) {
_, err := s.db.Model(author).Insert(author)
if err != nil {
return nil, err
}
return author, nil
package models
import "time"
type Article struct {
ID int `json:"id"`
Name string `json:"name"`
AuthorID int `json:"author_id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
package models
import "time"
type Author struct {
ID int `json:"id"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`