Skip to content

Commit 08c54f9

Browse files
authored
Merge pull request #23 from speakeasy-api/feat/add-sse-flat-response-endpoints
feat: add sse flat response endpoints
2 parents 24e68e7 + c20f1e1 commit 08c54f9

File tree

3 files changed

+52
-0
lines changed

3 files changed

+52
-0
lines changed

cmd/server/main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,10 @@ func main() {
5858
r.HandleFunc("/eventstreams/multiline", eventstreams.HandleEventStreamMultiLine).Methods(http.MethodPost)
5959
r.HandleFunc("/eventstreams/rich", eventstreams.HandleEventStreamRich).Methods(http.MethodPost)
6060
r.HandleFunc("/eventstreams/chat", eventstreams.HandleEventStreamChat).Methods(http.MethodPost)
61+
r.HandleFunc("/eventstreams/chat-flat", eventstreams.HandleEventStreamChatFlatten).Methods(http.MethodPost)
6162
r.HandleFunc("/eventstreams/chat-chunked", eventstreams.HandleEventStreamChat).Methods(http.MethodPost)
6263
r.HandleFunc("/eventstreams/differentdataschemas", eventstreams.HandleEventStreamDifferentDataSchemas).Methods(http.MethodPost)
64+
r.HandleFunc("/eventstreams/differentdataschemas-flat", eventstreams.HandleEventStreamDifferentDataSchemasFlatten).Methods(http.MethodPost)
6365
r.HandleFunc("/clientcredentials/token", clientcredentials.HandleTokenRequest).Methods(http.MethodPost)
6466
r.HandleFunc("/clientcredentials/authenticatedrequest", clientcredentials.HandleAuthenticatedRequest).Methods(http.MethodPost)
6567
r.HandleFunc("/clientcredentials/alt/token", clientcredentials.HandleTokenRequest).Methods(http.MethodPost)

cmd/server/server

13.2 MB
Binary file not shown.

internal/eventstreams/service.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,32 @@ func HandleEventStreamChat(rw http.ResponseWriter, _ *http.Request) {
139139
})
140140
}
141141

142+
func HandleEventStreamChatFlatten(rw http.ResponseWriter, _ *http.Request) {
143+
rw.Header().Add("Content-Type", "text/event-stream")
144+
145+
pushEvents(rw, [][]string{
146+
{
147+
`data: {"content": "Hello"}`,
148+
},
149+
150+
{
151+
`data: {"content": " "}`,
152+
},
153+
154+
{
155+
`data: {"content": "world"}`,
156+
},
157+
158+
{
159+
`data: {"content": "!"}`,
160+
},
161+
162+
{
163+
`data: [DONE]`,
164+
},
165+
})
166+
}
167+
142168
func HandleEventStreamChatChunked(rw http.ResponseWriter, _ *http.Request) {
143169
rw.Header().Add("Content-Type", "text/event-stream")
144170

@@ -174,3 +200,27 @@ func HandleEventStreamDifferentDataSchemas(rw http.ResponseWriter, _ *http.Reque
174200
},
175201
})
176202
}
203+
204+
func HandleEventStreamDifferentDataSchemasFlatten(rw http.ResponseWriter, _ *http.Request) {
205+
rw.Header().Add("Content-Type", "text/event-stream")
206+
207+
pushEvents(rw, [][]string{
208+
{
209+
`id: event-1`,
210+
`event: message`,
211+
`data: {"content": "Here is your url"}`,
212+
},
213+
214+
{
215+
`id: event-2`,
216+
`event: url`,
217+
`data: {"url": "https://example.com"}`,
218+
},
219+
220+
{
221+
`id: event-3`,
222+
`event: message`,
223+
`data: {"content": "Have a great day!"}`,
224+
},
225+
})
226+
}

0 commit comments

Comments
 (0)