Skip to content

Implement JSONPlaceholder REST APIs gRPC Methods #40

Description

@amitksingh1490

Posts

REST Endpoints:

  • GET /posts : Retrieve all posts. Accepts filter in Query Param like https://jsonplaceholder.typicode.com/posts?userId=1
  • GET /posts/{id} : Retrieve a single post by ID.
  • POST /posts : Create a new post.
  • PUT /posts/{id} : Update a post by ID.
  • DELETE /posts/{id} : Delete a post by ID.

gRPC Service Definition:

service PostService {
  rpc ListPosts(Filter) returns (PostList);
  rpc GetPost(PostRequest) returns (Post);
  rpc CreatePost(Post) returns (PostResponse);
  rpc UpdatePost(Post) returns (PostResponse);
  rpc DeletePost(PostRequest) returns (DeleteResponse);
}

Users

REST Endpoints:

  • GET /users : Retrieve all users. accepts queryparams like https://jsonplaceholder.typicode.com/users?id=1&id=2
  • GET /users/{id} : Retrieve a single user by ID.
  • POST /users : Create a new user.
  • PUT /users/{id} : Update a user by ID.
  • DELETE /users/{id} : Delete a user by ID.

gRPC Service Definition:

service UserService {
  rpc ListUsers(Filter) returns (UserList);
  rpc GetUser(UserRequest) returns (User);
  rpc CreateUser(User) returns (UserResponse);
  rpc PatchUser(PatchUserRequest) returns (UserResponse);
  rpc DeleteUser(UserRequest) returns (DeleteResponse);
}
  • Define Proto Files: Create .proto files containing these service and message definitions.
  • Implement Server Logic: Develop server-side handlers for each gRPC method.
  • Testing: Ensure each gRPC method correctly maps to the expected functionality of the original REST API.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions