From f9457b05573eaf0dedfaa1c359cebe389a9e875e Mon Sep 17 00:00:00 2001 From: xuybin Date: Fri, 17 Nov 2017 18:30:19 +0800 Subject: [PATCH] [init]Initial commit --- README.md | 2 +- docs/arch.png | Bin 0 -> 34042 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/arch.png diff --git a/README.md b/README.md index c02ddf3..941d346 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ documents will be wrote later. ## ARCH -![arch](https://res.cloudinary.com/digf90pwi/image/upload/v1502367434/go-simple-api-gatway_1_grgl5o.png) +![arch](https://raw.githubusercontent.com/xuybin/go-api-gateway/master/docs/arch.png) ## CONFIGURATION diff --git a/docs/arch.png b/docs/arch.png new file mode 100644 index 0000000000000000000000000000000000000000..a6a31ef18846c3c489c1cdc4ef4eaa2a97853b6e GIT binary patch literal 34042 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

WMAB#ah~Us%kR9Od7w!4nPFyATA@cv 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 Q6kQ?vyS?8gY&SafpFu(qCIA2c literal 0 HcmV?d00001