Skip to content

swanand09/goapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

How to run the code?

  • run go run .
  • open new tab in command line and type:
    • curl -F 'file=@matrix.csv' "localhost:8080/echo"
    • curl -F 'file=@matrix.csv' "localhost:8080/invert"
    • curl -F 'file=@matrix.csv' "localhost:8080/flatten"
    • curl -F 'file=@matrix.csv' "localhost:8080/sum"
    • curl -F 'file=@matrix.csv' "localhost:8080/multiply"

Backend Challenge

In main.go you will find a basic web server written in GoLang. It accepts a single request /echo. Extend the webservice with the ability to perform the following operations

Given an uploaded csv file

1,2,3
4,5,6
7,8,9
  1. Echo (given)

    • Return the matrix as a string in matrix format.
    // Expected output
    1,2,3
    4,5,6
    7,8,9
    
  2. Invert

    • Return the matrix as a string in matrix format where the columns and rows are inverted
    // Expected output
    1,4,7
    2,5,8
    3,6,9
    
  3. Flatten

    • Return the matrix as a 1 line string, with values separated by commas.
    // Expected output
    1,2,3,4,5,6,7,8,9
    
  4. Sum

    • Return the sum of the integers in the matrix
    // Expected output
    45
    
  5. Multiply

    • Return the product of the integers in the matrix
    // Expected output
    362880
    

The input file to these functions is a matrix, of any dimension where the number of rows are equal to the number of columns (square). Each value is an integer, and there is no header row. matrix.csv is example valid input.

Run web server

go run .

Send request

curl -F 'file=@/path/matrix.csv' "localhost:8080/echo"

What we're looking for

  • The solution runs
  • The solution performs all cases correctly
  • The code is easy to read
  • The code is reasonably documented
  • The code is tested
  • The code is robust and handles invalid input and provides helpful error messages

About

demo for starting an api in golang

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages