Клиент реализован на фреймворке cobra-cli. Клиент дает возможность использовать функционал сервиса через соответствующие команды.
- Реализация сервера - https://github.com/gremislaw/music_service
make
cd bin
./music_service --help
./music_service add --help
-
./music_service add --songName "Hello" --songAuthor "Adele" --songDuration 31
-
./music_service addSongToPlaylist --songName "Hello" --playlistName "Pop"
-
./music_service getPlaylist --playlistName "Pop"
-
./music_service play
-
./music_service deletePlaylist --playlistName "Pop"
Пример использования cobra-cli
package cmd
import (
"context"
"fmt"
"github.com/gremislaw/music_service/api"
"github.com/spf13/cobra"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
)
var playCmd = &cobra.Command{
Use: "play",
Short: "play current song",
Long: ``,
Run: play,
}
func play(cmd *cobra.Command, args []string) {
host, port := getHostPort()
conn, err := grpc.Dial(fmt.Sprintf("%s:%s", host, port), grpc.WithTransportCredentials(insecure.NewCredentials()))
if err != nil {
fmt.Println("Error:", err)
}
defer conn.Close()
client := api.NewMusicServiceClient(conn)
response, err := client.Play(context.Background(), &api.Empty{})
if err != nil {
fmt.Println("Error:", err)
}
fmt.Println(response.Response)
}
func init() {
rootCmd.AddCommand(playCmd)
}
make clean
make rebuild
make format