Skip to content

API 정리

yccs-26 edited this page Sep 15, 2020 · 3 revisions

HTTP RESPONSE CODE

  • 200  OK : 정상 
    
  • 400  유효
    
  • 401  유효하지 않은 token
    
  • 403  유효한 유저 정보를 찾지 못함
    
  • 409  DB에 이미 존재하는 데이터
    
  • 500  이메일을 보내는 데 실패
    

/v1/user

GET

 HealthCheck

POST

 UserByUserID
 UserByUserIDIgnoreAvailability
 UserByEmail
 UserByEmailNotAvailable
 UserByUserNumber

 RequestUserInfo	'json'
	 Token		string	'required'
	 UserID		string	'required'
	 UserPW	        string	'required'

 ResponseUserInfo	'json'

	 ID 		       int
	 User ID	       string
	 Name 		       string
	 StudNum	       int


 CreateUser : 유저 정보 생성

	ResponseUserCreate 

		UserName 	string	'required'
		UserNumber	 int32	'required'
		UserEmail 	string	'required'
		UserID 		string 	'required'

PUT

UpdateUser : 유저 정보 갱신
UserCreate
		ResponseUserCreate
			UserName	string	'required'
			UserNumber	int32	'required'
			UserEmail	string	'required'
			UserID		string	'required'
RequestUserToken
	UserId		string	'required'
	UserPW		string	'required'
ResposeUserToken
	Ok		bool	'required'

DELETE

UserByUserEmail : 특정 이메일의 유저 삭제

/v1/client

GET

  • Healthchech용
  •   현재 사용 가능한 클라이언트 리스트 및 사용량 정보(구현 필요)
    

POST

    클라이언트 세부 개인 정보 가져오는 요청(구현 필요)

PUT

ClientUpdate (테스트 필요)

	RequestClientUpdate	'json'

		MasterKey	string	
		ClientID	string	'required'
		ClietPW		string	'required'
		ChangedPW	string
		Link		string	'required'
		Description	string	'required'
		Valid		bool	
		RenewToken	bool

	ResposeClientUpdate

		Token		string
		Valid		bool

DELETE

       클라이언트 삭제하는 요청(구현 필요)

DataBase

GET

Healthcheck용
UserInfo		userId와 일치하는 정보를 DB에서 소환		
Logs		현재 유저의 로그정보를 소환(clientinfo에서)
Fetch		현재 저장된 정보와 일치하는 정보를 DB에서 소환
ClientInfo		clientId와 일치하는 정보를 DB에서 소환
UserByUserID
UserByUserIDIgnoreAvailability
UserByEmail
UserByEmailNotAvailable
UserByUserNumber

PUT

ClientInfo

	ID		int
	ClientID	string
	ClientPW	string
	Link		string
	Token		string
	Description	string
	Valid		bool
	CreatedAt	time.Time
	UpdatedAt	time.Time

UserInfo

	ID		int
	UserName	string
	UserNumber	int32
	UserEmail	string
	UserID		string
	UserPW		stirng
	Available	bool
	CreatedAt	time.Time
	UpdatedAt	time.Time
	DeletedAt	time.Time

Log 
	ID		int64
	User		int
	Client		int
	Event		EventType
	Message		string
	CreatedAt	time.Time

UserType		int8
		ADMINISTRATOR		UserType = -1
		STUDENT			UserType = iota
		PROFESSOR
		INSTRUCTOR
		EXTERNAL

EventType 	int
		UNKOWN			EventType = -1
		CREATED			EventType = 100
		MODIFIED		EventType = 101
		DELETED			EventType = 102
		LOGIN			EventType = 200
		LOGOUT			EventType = 201
		LOGINFAIL		EventType = 202
		QUERYLOG		EventType = 300

		INVALIDCLIENTPW		EventType = 401
		INVALIDTOKEN		EventType = 402
		USERNOTFOUND		EventType = 403
		INCORRECTPASSWORD	EventType = 404

POST

UpdateClient 
CreateUser
UpdateUser

DELETE

ClientInfo
UserInfo
DeleteUserByUserEmail

SECRET

GenerateSecret 

Object2JWT	JWT 가져오는 함수

JWT2Object	JWT 검증하는 함수

GenereateNewToken

CheckIsMasterKey

	str	string

/v1/frontend

GET

GetLogs

	responseUserLog	'json'

		ClientID	int
		Event	        int
		Date	        time.Time
GetToken

GetUserID		context에서 userId 가져옴

    GetLogoutHandler

POST

LoginHandler

	requestLogin	'json'
		UserID 		string       'required'
		UserPW		string       'required'

	responseLogin	'json'
		UserID		string
		UserName	string
		UserNumber	int32
		UserEmail	string

PUT

DELETE

Clone this wiki locally